使用值来搜索r中的列

时间:2017-02-10 08:16:36

标签: r assign

如何使row_to_keep命令使用变量b而不是使用实变量名。谢谢你的帮助

    > names(newdata)
    [1] "Jahr"      "Forstzone" "value,,"  
    > variablennameliste<-list("Year","year","Jahr","jahr")
    > b<-toString(intersect(names(newdata),variablennameliste))
    > print(b)
    [1] "Jahr"
    >row_to_keep = which(newdata$b!=2014)
    Warning message:
    Unknown column 'b' 

我试过了

    assign()      

命令,但它不起作用

1 个答案:

答案 0 :(得分:0)

我们需要使用[来提取对象中的值&#39; b&#39;

which(newdata[,b]!=2014)

不需要toString包装器,因为当有多个,元素时,它将转换为由分隔符intersect分隔的单个字符串。在该示例中,只有一个元素。

b <- intersect(names(newdata),variablennameliste)

即使有多个intersect元素,上述内容也可以正常运行,因为我们正在选择“新数据”。基于&#39;&#39;的列向量。在这种情况下,比较!=2014取决于列具有的值和目标