A:如何基于多列合并数据框


您可以使用以下基本语法在 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'),
                 dots=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 To 7
2 2 B 8
3 3 B 8
4 4 B 14

请注意,两个数据框共享playerID列,但团队列在每个数据框中具有不同的名称:

  • 第一个数据框有“团队”列
  • 第二个数据框有列“ tm

为了根据playerID和team列合并这些数据框,我们需要使用by.xby.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 中执行其他常见数据框函数:

如何在 R 中进行左连接
如何在 R 中进行 VLOOKUP
如何在R中向数据框添加行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注