我试图确定数据框中的值不匹配,但无法弄清楚如何执行此操作。如何从数据框中选择不匹配的行?
# make data frame
a <- data.frame(x = c(1,2,3,4))
b <- data.frame(y = c(1,2,3,4,5,6))
# select only values from b that are not in 'a'
# attempt 1:
results1 <- b$y[ !a$x ]
# attempt 2:
results2 <- b[b$y != a$x,]
如果a = c(1,2,3)
这个工程,因为a
是b
的倍数。但是,我试图从数据帧y
中选择所有不在x
中的值,并且不明白要使用哪个函数。
感谢@Chase,我花了一些时间试图找出什么'%在%'运营商的否定了,但可以不知道。这个答案也很有帮助,因为它整齐地分组数据。 – djq 2011-04-28 18:50:05
@celenius - '%in%'操作符返回一个逻辑向量,告诉我们第一个操作符和第二个操作符是否匹配。 '(b $ y%%a $ x)[1] TRUE TRUE TRUE FUESE FALSE'。 '!'意味着否定,所以会返回'!(b $ y%in%a $ x)[1] FALSE FALSE FALSE FALSE TRUE TRUE'。这有助于解释事情吗? – Chase 2011-04-28 19:15:03