2014-02-15 35 views
0

我有一個很大的問題。我將對R統計中具有不同長度的兩個不同數據框的數據以及多個ID字段進行計算。但我不知道有什麼聰明的方法來加入這些數據框。這是什麼我正嘗試做的,我有多麼的數據結構的例子是這樣的:R-Statistics中的幾個ID字段連接到不同長度的數據幀

數據幀1

Country Village postnumber Nr.of.people.in.household 

1  1 2  4000 1 

2  2 2  3000 2 

3  3 8  1200 1 

4  4 8  1100 2 

Dataframe2

Country Village postnumber bills nr.of.bills 

1  1 2  4000   1     2 

2  1 2  4000   2     2 

3  2 2  3000   1     1 

4  3 8  1200   1     1 

5  4 8  1100   1     7 

6  4 8  1100   2     7 

7  4 8  1100   3     7 

8  4 8  1100   4     7 

9  4 8  1100   5     7 

10  4 8  1100   6     7 

11  4 8  1100   7     7 

,我想結合數據框1和2此: 數據幀3

People.in.household County Village postnumber bills Nr.of.bills 

1     1  1  2  4000  1   2 

2     1  1  2  4000  2   2 

3     2  2  2  3000  1   1 

4     1  3  8  1200  1   1 

5     2  4  8  1100  1   7 

6     2  4  8  1100  2   7 

7     2  4  8  1100  3   7 

8     2  4  8  1100  4   7 

9     2  4  8  1100  5   7 

10     2  4  8  1100  6   7 

11     2  4  8  1100  7   7 

這僅僅是一個例子,在realit我有這麼多的數據,需要幾天才能手動將數據幀連接在一起。

+1

'合併(df1,df2)'會做到這一點。對於更復雜的合併,'plyr :: join_all'很不錯 – rawr

+0

另外,你可以看看這個** [SO問題](http://stackoverflow.com/questions/21756633/populating-a-data-frame-with-相應的值從另一個/ 21756945#21756945)**一些其他方式來做到這一點。 – BrodieG

+0

感謝所有的答案,他們一直很有幫助,但仍然有問題 - 我注意到當我導出新的數據框時,我發現數據丟失或顯示的數字與他們在R中的數量不同。並且我再次發現自己需要幫幫我。 – user40116

回答

0

下面是使用library(data.table)一個快速的解決方案:

library(data.table) 
dt1 <- data.table(df1, key=c("Country", "Village", "postnumber")) 
dt2 <- as.data.table(df2) 
dt1[dt2] 
#  Country Village postnumber Nr.of.people.in.household bills nr.of.bills 
# 1:  1  2  4000       1  1   2 
# 2:  1  2  4000       1  2   2 
# 3:  2  2  3000       2  1   1 
# 4:  3  8  1200       1  1   1 
# 5:  4  8  1100       2  1   7 
# 6:  4  8  1100       2  2   7 
# 7:  4  8  1100       2  3   7 
# 8:  4  8  1100       2  4   7 
# 9:  4  8  1100       2  5   7 
# 10:  4  8  1100       2  6   7 
# 11:  4  8  1100       2  7   7 

df1保持你的數據幀1,相應地df2數據幀2。

相關問題