【发布时间】:2015-02-03 16:58:33
【问题描述】:
我有两个长度相等的 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 新手,所以这应该很容易做到,但它超出了我的技能。感谢您的帮助
..好的,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
【问题讨论】:
-
我猜你需要使用
?merge。让您的问题可重现,以便在 SO 上获得更好的帮助。 -
正如@docendodiscimus 所说,
merge应该可以工作。但是从您的描述中不清楚您的标识符是什么,因此很难提供确切的解决方案。我认为您缺少游戏参与者的标识符,这就是您苦苦挣扎的原因。 -
您需要提供一个可重现的示例。
str不容易被复制。 -
现在添加您想要的输出效果。