我试图合并两个数据集.在过去,我已经使用merge()具有by等于我要合并的变量.但是,现在我想用两个变量来做.我的第一个数据集看起来像这样:
Year Winning_Tm Losing_Tm
2011 Texas Washington
2012 Alabama South Carolina
2013 Tennessee Texas
Run Code Online (Sandbox Code Playgroud)
然后我有另一个数据集,每个团队的每个团队的排名(这是非常简化的).像这样:
Year Team Rank
2011 Texas 32
2011 Washington 34
2012 South Carolina 45
2012 Alabama 12
2013 Texas 6
2013 Tennessee 51
Run Code Online (Sandbox Code Playgroud)
我想合并它们,所以我有一个如下所示的数据集:
Year Winning_Tm Winning_TM_rank Losing_Tm Losing_Tm_rank
2011 Texas 32 Washington 34
2012 Alabama 12 South Carolina 45
2013 Tennessee 51 Texas 6
Run Code Online (Sandbox Code Playgroud)
我希望有一种简单的方法可以做到这一点但它可能更复杂.谢谢!
两个单独的合并。您需要将by变量列表包装在 中c(),并且由于变量具有不同的名称,因此您需要by.x和by.y。之后您可以重命名排名变量。
我将分别调用您的数据winlose和teamrank。那么你需要:
first_merge <- merge(winlose, teamrank, by.x = c('Year', 'Winning_Tm'), by.y = c('Year', 'Team'))
second_merge <- merge(first_merge, teamrank, by.x = c('Year', 'Losing_Tm'), by.y = c('Year', 'Team'))
Run Code Online (Sandbox Code Playgroud)
重命名变量:
names(second_merge)[names(second_merge) == 'Rank.x'] <- 'Winning_Tm_rank'
names(second_merge)[names(second_merge) == 'Rank.y'] <- 'Losing_Tm_rank'
Run Code Online (Sandbox Code Playgroud)