无法提取相反的元素

时间:2018-08-16 12:15:37

标签: r

我试图从向量all.variables中提取一些元素,如下所示: 请注意,矢量具有较高的形状,但在这里我举一个例子:

这是第一个向量:

> new.var<-unique(most.correlated$Var1)
> new.var[1:10]
 [1] "5a648a09d" "86f13324d" "343042ed9" "29eddc376" "7a34c9e13" "ebbd8432c" "4a20b79b4" "f553483a0" "22abeffb6"
[10] "c4de134af"

第二个是:

> all.variables<-as.vector(most.correlated$Var1)
> all.variables[1:10]
 [1] "5a648a09d" "86f13324d" "343042ed9" "29eddc376" "7a34c9e13" "ebbd8432c" "4a20b79b4" "f553483a0" "22abeffb6"
[10] "c4de134af"

然后,我需要从向量all.variables中提取两个向量all.variablesnew.var中都的元素。 所以我写这段代码:

delete.variables<-all.variables[which(!all.variables %in% new.var)]

结果是:

> delete.variables
character(0)

这很奇怪,因为在实际情况下,它应该给出一个包含许多元素的向量!我不明白这里出了什么问题? 预先谢谢你!

2 个答案:

答案 0 :(得分:1)

这可能有效。删除感叹号并添加减号

delete.variables<-all.variables[-which(all.variables %in% new.var)]

答案 1 :(得分:0)

dplyr中有很好的anti_join函数,可以选择此类元素

data.frame(name=allvar)%>% anti_join(data.frame(name=newvar), by="name")