Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
For循环变量作为列名_R_Loops_For Loop - Fatal编程技术网

For循环变量作为列名

For循环变量作为列名,r,loops,for-loop,R,Loops,For Loop,例如,我创建了一个包含数据帧列名的小向量,我想循环这些变量,以便删除列中变量I等于列名的某些值 创建向量: Ellenberg_value<- c( "VOCHTIND", "ZUURGIND", "STIKSIND", "ZOUT_IND") Ellenberg_值当列名存储为字符向量时,必须使用另一种机制(使用[[而不是$)进行子集。例如: df <- data.frame(a = 1 ,b = 3) cols <- names(df) 而您的代码没有: for (i

例如,我创建了一个包含数据帧列名的小向量,我想循环这些变量,以便删除列中变量
I
等于列名的某些值

创建向量:

Ellenberg_value<- c( "VOCHTIND", "ZUURGIND", "STIKSIND", "ZOUT_IND")

Ellenberg_值当列名存储为字符向量时,必须使用另一种机制(使用
[[
而不是
$
)进行子集。例如:

df <- data.frame(a = 1 ,b = 3)
cols <- names(df)
而您的代码没有:

for (i in cols) {
  print(i)
  print(df$i)
}
[1] "a"
NULL
[1] "b"
NULL

因此,在您的代码中,您可以使用
Ecobase[!Ecobase[[i]]==“X”,]
我认为不需要循环。如果我理解正确,您希望删除至少一列
“VOCHTIND”、“ZUURGIND”、“STIKSIND”、“ZOUT_IND”
等于
“X”
的行,对吗

Ecobase[rowSums(Ecobase[,Ellenberg_value] == "X") == 0,]
如果还想删除带有“?”的行,可以执行以下操作:

Ecobase[rowSums(sapply(Ecobase[Ellenberg_value], '%in%', c("X", "?"))) == 0,]

请尝试
Ecobase[!Ecobase[[i]]=“X”,]
Ecobase[rowSums(Ecobase[,Ellenberg_value] == "X") == 0,]
Ecobase[rowSums(sapply(Ecobase[Ellenberg_value], '%in%', c("X", "?"))) == 0,]