我試圖確定數據框中的值不匹配,但無法弄清楚如何執行此操作。如何從數據框中選擇不匹配的行?
# 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