将要删除的值存储在向量中时,从数据帧中过滤行的最佳方法是什么?在我的情况下,我有一列包含日期,并且想要删除多个日期。
我知道如何使用!=
删除对应于一天的行,例如:
m[m$date != "01/31/11", ]
为了删除向量中指定的几个日期,我尝试了:
m[m$date != c("01/31/11", "01/30/11"), ]
但是,这会生成警告消息:
Warning message:
In `!=.default`(m$date, c("01/31/11", "01/30/11")) :
longer object length is not a multiple of shorter object length
Calls: [ ... [.data.frame -> Ops.dates -> NextMethod -> Ops.times -> NextMethod
应用基于多个值的过滤器的正确方法是什么?
最佳答案
nzcoops提出了他的建议。不久前,我在R Chat中提出了这个问题,Paul Teetor建议定义一个新函数:
`%notin%` <- function(x,y) !(x %in% y)
然后可以如下使用:
foo <- letters[1:6]
> foo[foo %notin% c("a", "c", "e")]
[1] "b" "d" "f"
不用说,这个小宝石现在在我的R profile中并且经常使用。
关于r - 根据向量中的值过滤数据帧行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7494848/