[英]Matching data.frames in R
我有兩個相等長度的data.frames。 一個data.frame具有變量WEEK,Winner,Loser,homeScore,awayScore。
'data.frame': 256 obs. of 5 variables:
$ Week : int 313 313 313 313 313 313 313 313 313 313 ...
$ Winner : Factor w/ 32 levels "ARI","ATL","BAL",..: 1 2 4 5 7 10 11 13 17 18 ...
$ Loser : Factor w/ 32 levels "ARI","ATL","BAL",..: 26 20 6 30 3 14 21 32 19 29 ...
$ homeScore: Factor w/ 41 levels "","12","13","14",..: 7 25 12 9 12 20 23 6 21 22 ...
$ awayScore: Factor w/ 32 levels "","0","10","11",..: 10 26 13 7 9 17 7 30 13 30 ...
>
另一個有WEEK,Favorite,Underdog,Spread。
'data.frame': 256 obs. of 4 variables:
$ Week : int 313 313 313 313 313 313 313 313 313 313 ...
$ Favorite: chr "SEA" "NO" "STL" "PIT" ...
$ Underdog: Factor w/ 32 levels "ARI","ATL","BAL",..: 12 2 18 8 15 23 7 4 32 31 ...
$ Spread : chr "-5" "-3" "-3" "-6" ...
我需要將這兩個data.frames組合在一起,以具有帶有WEEK,Favorite,Underdog,homeScore,awayScore,Spread的data.frame。
我正在努力解決此匹配問題,因為“收藏夾”可能不是其他data.frame的獲勝者。因此,我需要每周進行一次“收藏夾”與“獲勝者”或“失敗者”的匹配,然后將價差放在正確的行中。 我是R的新手,所以這應該很容易實現,但是超出我的能力范圍。 謝謝你的幫助
..ok這是data.frames的樣子
head(df1)
Week Winner Loser homeScore awayScore
313 ARI SD 18 17
313 ATL NO 37 34
313 BUF CHI 23 20
313 CAR TB 20 14
313 CIN BAL 23 16
313 DEN IND 31 24
313 DET NYG 35 14
313 HOU WAS 17 6
313 MIA NE 33 20
313 MIN STL 34 6
head(df2)
Week Favorite Underdog Spread
313 SEA GB -5
313 NO ATL -3
313 STL MIN -3
313 PIT CLE -6
313 PHI JAX -10
313 NYJ OAK -6.5
313 BAL CIN -1
313 CHI BUF -7
313 HOU WAS -3
313 KC TEN -3
您需要cbind() 。
如果您的第一個數據幀是A,第二個數據幀是B,則首先為每個選擇通用的WEEK:
subset.A <- subset(A, Week == 313)
subset.B <- subset(B, Week == 313)
然后合並它們:
resultDF <- cbind(A$Week, B$Favorite, B$Underdog, A$homeScore, A$awayScore, B$Spread)
我不知道我是否正確理解了您,但是幾天前我也問了同樣的問題。 對我來說最好的答案是:
merge(DFa, DFb, by.x='columnName_a_2Match', by.y='columnName_b_2Match')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.