我目前有ndat,一个包含项目及其各自数据的数据框,如下所示:
> glimpse(ndat)
Observations: 203
Variables:
$ i5 (dbl) 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1...
$ i4 (dbl) 1, 1, 1, 1, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1...
$ i3 (dbl) 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1...
$ i2 (dbl) 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2...
$ i1 (dbl) 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1...
我也有" newDV"和" newCV"这是包含ndat中找到的几个项目的项目名称的字符串,如下所示:
> newCV
[1] "i3" "i2"
> newDV
[1] "i1"
我想要做的是让ndat包含未包含在newCV或newDV中的项目,因此最终看起来像:
> glimpse(ndat)
Observations: 203
Variables:
$ i5 (dbl) 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1...
$ i4 (dbl) 1, 1, 1, 1, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1...
我尝试了以下内容:
ndat<-as.data.frame(ndat[!(ndat %in% c(newCV,newDV))])
但是这似乎只适用于字符串到字符串,而不是使用字符串来指定数据框中的列。有什么想法吗?谢谢!
答案 0 :(得分:2)
您只需按ndat
的列名称而不是其值进行过滤,例如
ndat[,!(names(ndat) %in% c(newCV, newDV))]