我是R编程的新手。我有一个需求,并尝试使用for循环来解决。我有一个包含14个变量的数据框,其中某些行和列的值为空。我的要求是列出每个变量(列)中空值的数量。 我的以下代码实现了这一点:
for (x in names(df)){
cat(paste("No of rows with empty value for", x, " variable:",
nrow(df[df$x == '', ])))
}
nrow(df[df$x=='',])
在上面的nrow
命令中,x值不能代替df$x == ''
。
需要一些专家帮助对其进行修复。
预先感谢
关于, Vin
答案 0 :(得分:2)
尽管可以使用sapply来使代码更整洁。
sapply(df, FUN=function(x) sum(x == ''))
答案 1 :(得分:1)
我稍微修改了您的for循环,最后添加了换行符。如果对创建的布尔值求和要比对行计数要容易。
##Create some fake data
df <- data.frame(
first_var = c(rep("",10),1:10),
second_var = c(rep("",9), 1:11),
third_var = c(rep("", 8), 1:12),
fourth_Var = c(rep("", 7), 1:13)
)
for(i in names(df)){
cat(paste0("No of rows with empty value for ",i, " variable:",sum(df[,i] == ""),"\n"))
}