Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为R中的循环传递包含条件的变量名_R - Fatal编程技术网

为R中的循环传递包含条件的变量名

为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

我是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

我稍微更改了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。