2011-01-27 9 views
3

長さの異なる2つのデータセットをマージすることに関する非常に基本的な質問があります。一つは、私がIDや時間によってこれら二つを組み合わせることができますどのように年の長さの異なるデータセットをRで結合する

ID Time 
1 1  
1 2 
1 3 
2 1 
2 2 
2 3 

第二セットは等しくない長さを持っており、この

ID Time X 
1 2 2 
2 1 3 
2 3 4 

のように見えるの標準的なパネルであるかもしれないこと

ID Time X 
1 1 NA 
1 2 2 
1 3 NA 
2 1 3 
2 2 NA 
2 3 4 

答えて

10

こんにちはそうマージ関数のall.xまたはall.yオプションを見てください。

Data1 <- data.frame(ID = rep(c(1,2), each = 3), 
        Time = rep(c(1, 2, 3), 2)) 
Data2 <- data.frame(ID = c(1, 2, 2), 
        Time = c(2, 1, 3), 
        X = c(2, 3, 4)) 
merge(Data2, Data1, all.y = TRUE) 
    ID Time X 
1 1 1 NA 
2 1 2 2 
3 1 3 NA 
4 2 1 3 
5 2 2 NA 
6 2 3 4 

またはplyr機能がマージよりもその高速化を結合を使用してますが、いくつかのオプションが不足している:

join(Data2, Data1, type = "full") 
Joining by: ID, Time 
    ID Time X 
1 1 2 2 
2 2 1 3 
3 2 3 4 
4 1 1 NA 
5 1 3 NA 
6 2 2 NA 
+0

参加する機能は、トリックを行いました。ありがとうございました。 – CGN

関連する問題