【问题标题】:R Not in subset [duplicate]R不在子集中[重复]
【发布时间】:2012-04-08 19:37:31
【问题描述】:

可能重复:
Standard way to remove multiple elements from a dataframe

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

subset(df1, df1$id %in% idNums1)

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

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

subset(df1, df1$id !%in% idNums1)

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

matches <- subset(df1, df1$id %in% idNums1)
nonMatches <- df1[(-matches[,1]),]

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

【问题讨论】:

标签: r subset


【解决方案1】:

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

!(df1$id %in% idNums1)

【讨论】:

  • 记住带有 if 语句的额外 ()if (!(something)) { print "not something"}
  • 当有多个嵌套时,括号很不方便,我发现定义not-in 运算符非常有用。这里有几个关于如何做到这一点的建议:stackoverflow.com/questions/5831794/opposite-of-in
猜你喜欢
  • 1970-01-01
  • 2013-08-04
  • 2023-03-28
  • 1970-01-01
  • 2015-03-28
  • 1970-01-01
  • 2014-06-25
  • 2020-10-17
  • 2015-03-21
相关资源
最近更新 更多