2016-12-07 149 views
-2

我有兩個數據幀。通過第二個數據幀過濾數據幀

selectedcustomersa是一個包含50個客戶的信息的數據框。拳頭欄是名(Group.1)。

selectedcustomersb是另一個數據幀(相同結構),其中包含關於2000個客戶的信息,來自selectedcustomersa的客戶包含在那裏。

我想selctedcustomersb沒有selctedcustomersa的客戶。

我想:

newselectedcustomersb<-filter(selectedcustomersb, Group.1!=selectedcustomersa$Group.1) 
+0

你可以使用'setdiff'。像'newselectedcustomersb < - selectedcustomersb [selectedcustomersb $ Group.1%in%setdiff(selectedcustomersb $ Group.1,selectedcustomersa $ Group.1),]'' – lmo

回答

2

嘗試:

newselectedcustomersb <- filter(selectedcustomersb, !(Group.1 %in% selectedcustomersa$Group.1)) 
3

一種方式做,這是使用anti_join在dplyr如下。它將跨越多個欄目等工作。

library(dplyr) 
df1 <- data.frame(x = c('a', 'b', 'c', 'd'), y = 1:4) 
df2 <- data.frame(x = c('c', 'd', 'e', 'f'), z = 1:4) 
df <- anti_join(df2, df1) 
df 
    x z 
1 e 3 
2 f 4