2016-04-03 66 views
0

想我已經被添加了兩個數據集從數據集R中添加一列到另一個數據集

DS1

NO ID  DOB   ID2 count 
1 4083 2007-10-01 3625 5 
2 4408 2008-07-01 3603 2 
3 4514 2007-07-01 3077 3 
4 4396 2008-05-01 3413 5 
5 4222 2003-12-01 3341 1 

DS2

loc share 
12 445 
23 4 
10 56 
1  1 
23 34 

我想要 「分享」 DS2的列到ds1,使它看起來像

重新編號

NO ID  DOB   ID2 count share 
1 4083 2007-10-01 3625 5  445 
2 4408 2008-07-01 3603 2  4 
3 4514 2007-07-01 3077 3  56 
4 4396 2008-05-01 3413 5  1 
5 4222 2003-12-01 3341 1  34 

我試圖合併作爲 dsmerged < - 合併(DS1 [,C(1:5)],DS2 [,C(2)])

但它的作用是它重複數據集(5 * 5 = 25行),同時添加「共享」列。我不希望那些重複的值顯然。謝謝

+2

難道你有一個關鍵的合併?看起來「NO」和「loc」應該是你的鑰匙?如果你只是想添加共享列和順序無關緊要,你可以簡單地執行'ds1 $ share < - ds2 $ share',我認爲這不太可能。 – Psidom

回答

0

如果您知道該行表示相同的ID,那麼你可以只cbind

ds3 <- cbind(ds1, share = ds2$share) 

,但它會更好,如果你有一個ID加入上。

+0

謝謝:)它的工作原理! – Sanju

0

使用dplyr

library(dplyr) 
bind_cols(ds1, ds2['share']) 

或用data.table

setDT(ds1)[, share := ds2[["share"]]] 
相關問題