你可以使用以下基本语法在R中基于多列合并两个数据框架“
merge(df1, df2, by.x=c('col1', 'col2'), by.y=c('col1', 'col2'))
下面的例子展示了如何在实践中使用这种语法。
例子:合并基于多列的数据框架
假设我们在R中拥有以下两个数据框架:
#define data frames
df1 = data.frame(playerID=c(1, 2, 3, 4, 5, 6),
team=c('A', 'B', 'B', 'B', 'C', 'C'),
points=c(19, 22, 25, 29, 34, 39))
df2 = data.frame(playerID=c(1, 2, 3, 4),
tm=c('A', 'B', 'B', 'B'),
rebounds=c(7, 8, 8, 14))
#view first data frame
df1
playerID team points
1 1 A 19
2 2 B 22
3 3 B 25
4 4 B 29
5 5 C 34
6 6 C 39
#view second data frame
df2
playerID tm rebounds
1 1 A 7
2 2 B 8
3 3 B 8
4 4 B 14
请注意,这两个数据框架共享playerID列,但每个数据框架中的球队列有不同的名称:
- 第一个数据框有 "team"列
- 第二个数据框有 "tm"列
为了根据球员ID和球队列来合并这些数据框,我们需要使用by.x和by.y参数。
我们可以使用下面的代码来执行这个合并:
#merge two data frames
merged = merge(df1, df2, by.x=c('playerID', 'team'), by.y=c('playerID', 'tm'))
#view merged data frame
merged
playerID team points rebounds
1 1 A 19 7
2 2 B 22 8
3 3 B 25 8
4 4 B 29 14
最终合并的数据框包含属于两个原始数据框的四个球员的数据。
其他资源
下面的教程解释了如何在R中执行与数据框架有关的其他常见功能。