2016-12-07 8 views
-2

私は2つのデータフレームを持っています。第2のデータフレームによるデータフレームのフィルタリング

selectedcustomersaは、50人の顧客に関する情報を含むデータフレームです。最初の列は名前です(Group.1)。

selectedcustomersbは、別のデータフレーム(同じ構造)で、2000年の顧客に関する情報とselectedcustomersaの顧客が含まれています。

にはselctedcustomersaのお客様がいません。

私が試した:

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

「setdiff」を使用できます。 'newselectedcustomersb < - selectedcustomersb [selectedcustomersb $ Group1%in setdiff(selectedcustomersb $ Group.1、selectedcustomersa $ Group.1)、]のようなものです。 – lmo

答えて

2

試してみてください。

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

これを行う1つの方法は、以下のようにdplyrでanti_joinを使用することですが。複数の列などで機能します。

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 
関連する問題