2017-05-25 128 views
-1

我有兩個不等長的數據幀,A和B.我想根據兩列將A的列複製到B中。但是,由於數據幀長度不等,我希望在匹配發生的任何地方都有同一行的多個副本。例如:將一個數據幀中的列複製到另一個數據行中

一個

Team  Season  stat1  stat2  stat3 
Maryland  2002  23.0  2.54  3.43 
Duke   2002  32.1  2.11  2.56 
Siena  2002  21.5  3.11  2.11 

Team   Season 
Maryland  2002 
Siena  2002 
Maryland  2002 
Duke   2002 

最後

Team  Season  stat1  stat2  stat3 
Maryland 2002  23.0  2.54  3.43 
Siena  2002  21.5  3.11  2.11 
Maryland 2002  23.0  3.11  3.43 
Duke  2002  32.1  2.11  2.56 

所以,我想複製STAT1,STAT2和根據Team和Season中的字符串將stat3從A轉換爲B.請注意,馬里蘭州不止一次出現,所以我想將stat1,stat2和stat3複製到BOTH行中。此外,爲了長度的原因,我只包含了2002賽季的數據,但我希望能夠根據球隊和賽季進行匹配。我試過使用合併功能,但它似乎並沒有複製到多行。

注意這是我在這裏的第一篇文章,所以原諒我沒有最好的格式。提前致謝。

回答

0

假設B = DATA_B和A = DATA_A

final<-merge(data_b,data_a,by=c("Team","Season"),all.x=TRUE) 
+0

有沒有辦法保持數據幀B的原始順序?您的代碼有效,但行按字母順序返回。我想保留B的原始順序,因爲每一組兩行都是比賽遊戲(Team1 vs Team2) – JRP

+1

data_b <-as.data.table(data_b),data_a <-as.data.table(data_a),final <-merge(DATA_B,DATA_A,通過= C( 「團隊」, 「季節」),all.x = TRUE,排序= FALSE) – Vitalijs

0

易peasy。使用合併功能。在這種情況下,它將是: 合併(A,B,by = c('Team','Season'),all.Y = TRUE)

相關問題