2016-09-25 27 views
0

最初の2つの変数の特定の組み合わせを含む行を選択することで、私の最初の大きなデータフレーム 'df1'のサブセットを取得しようとしています。より小さい 'df2'。たとえば:2つの変数がR内の別のデータフレームと一致するデータフレームのサブセット

df1 <- data.frame(ID = c("A", "A", "A", "B", "B", "B"), 
    day = c(1, 2, 2, 1, 2, 3), value = seq(4,9)) 

df1 # my actual df has 20 varables 
ID day value 
A 1  4 
A 2  5 
A 2  6 
B 1  7 
B 2  8 
B 3  9 

df2 <- data.frame(ID = c("A", "B"), day = c(2, 1)) 

df2 # this df remains at 2 variables 
ID day 
A 2 
B 1 

出力は次のようになりどこ:

ID day value 
A 2  5 
A 2  6 
B 1  7 

すべてのヘルプははるかに高く評価wouldbe、ありがとう!

答えて

2

これは、merge機能を有効に使用しています。出力を与える

df1 <- data.frame(ID = c("A", "A", "A", "B", "B", "B"), 
        day = c(1, 2, 2, 1, 2, 3), value = seq(4,9)) 

df2 <- data.frame(ID = c("A", "B"), day = c(2, 1)) 

merge(df1, 
     df2, 
     by = c("ID", "day")) 

ID day value 
1 A 2  5 
2 A 2  6 
3 B 1  7 
+0

ありがとうございました!私は「マッチ」と「交差」に集中していて、私はそれについても考えなかった...まさに私が探していたもの –

0

ここではdplyrソリューションです:

library("dplyr") 
semi_join(df1, df2, by = c("ID", "day")) 
# ID day value 
# 1 A 2  5 
# 2 A 2  6 
# 3 B 1  7 
関連する問題