R不在子集中

scr*_*Owl 54 r subset

可能重复:
从数据框中删除多个元素的标准方法

我知道在R中,如果你正在搜索另一个组的子集或基于id的匹配,你会使用类似的东西

subset(df1, df1$id %in% idNums1)
Run Code Online (Sandbox Code Playgroud)

我的问题是如何做相反的事情或选择不匹配ids矢量的项目.

我尝试使用!但收到错误消息

subset(df1, df1$id !%in% idNums1)
Run Code Online (Sandbox Code Playgroud)

我认为我的备份是这样做的:

matches <- subset(df1, df1$id %in% idNums1)
nonMatches <- df1[(-matches[,1]),]
Run Code Online (Sandbox Code Playgroud)

但我希望有一些更高效的东西.

Ari*_*man 113

表达式df1$id %in% idNums1产生逻辑向量.要否定它,你需要否定整个向量:

!(df1$id %in% idNums1)
Run Code Online (Sandbox Code Playgroud)

  • 记住带有if语句的额外`()`.`if(!(something)){print"not something"}` (2认同)