R:打印列名和大于0的缺少值的数量
房价数据集有大量变量,很少有变量有许多缺失值。R:打印列名和大于0的缺少值的数量,r,for-loop,missing-data,R,For Loop,Missing Data,房价数据集有大量变量,很少有变量有许多缺失值。 我要查找每个变量缺少的值的数量。 但是由于变量的数量很大,数据有时难以观察。 (以下只是示例数据集。Actual大约有80个变量。) 因此,我想创建一个小函数,用于打印列名和NA计数。 我试过下面的方法 for (x in filtered_data){ if (sum(is.na(x)>0)){ print(sum(is.na(x))) print(colnames(x)) } } 然而,结果是: [1]
我要查找每个变量缺少的值的数量。
但是由于变量的数量很大,数据有时难以观察。
(以下只是示例数据集。Actual大约有80个变量。) 因此,我想创建一个小函数,用于打印列名和NA计数。
我试过下面的方法
for (x in filtered_data){
if (sum(is.na(x)>0)){
print(sum(is.na(x)))
print(colnames(x))
}
}
然而,结果是:
[1] 259
NULL
[1] 8
NULL
[1] 8
NULL
[1] 37
NULL
[1] 37
NULL
[1] 38
NULL
[1] 37
NULL
有没有一种方法可以打印如下内容:
Lot_Extent: 259
Garage: 81
Garage_Built_Year: 81
等等…这里有一个矢量化选项:
data <- colSums(is.na(filtered_data))
cat(paste(names(data), data, sep = ' : ', collapse = '\n'))
datanamedCountsfor(x in names(filtered_data))if(any(is.na(filtered_data[[x]])cat(x,”:”,sum(is.na(filtered_data[[x]]),“\n”,sep=“”)
也不是答案,但我推荐该软件包skimer
及其功能skim skim
:skimer::skim(filtered_data)
data <- colSums(is.na(filtered_data))
cat(paste(names(data), data, sep = ' : ', collapse = '\n'))
namedCounts <- sapply(filtered_data, function(x) sum(is.na(x)))
namedCounts <- namedCounts[namedCounts>0]
print(paste0(names(namedCounts)," :",unname(namedCounts)))