为R中的循环传递包含条件的变量名
我是R编程的新手。我心里有一个需求,并试图用for循环解决它。我有一个包含14个变量的数据框,其中一些行和列的值为空。我的要求是列出每个变量(列)中的空值数量。 我的代码如下,以实现它:为R中的循环传递包含条件的变量名,r,R,我是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
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我稍微更改了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"))
}
##创建一些虚假数据
df我稍微改变了你的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"))
}
##创建一些虚假数据
df您可以使用sapply-tough使代码更干净
sapply(df,FUN=function(x)sum(x='')
您可以使用sapply-though使代码更干净
sapply(df,FUN=函数(x)和(x='')
非常感谢。这很有帮助,但正如王倩波建议的那样,我会选择sapply。非常感谢。这很有帮助,但正如王倩波建议的那样,我会选择sapply。