如何将r中的两个数据框与不同的列组合起来


您可以使用 R 中dplyr包中的bind_rows()函数快速组合两个具有不同列的数据框:

 library (dplyr)

bind_rows(df1, df2)

下面的例子展示了如何在实际中使用这个功能。

示例:合并两个具有不同列的数据框

假设我们在 R 中有以下两个数据框:

 #define first data frame
df1 <- data. frame (A=c(1, 6, 3, 7, 5),
                  B=c(7, 9, 8, 3, 2),
                  C=c(3, 5, 2, 9, 9))

df1

  ABC
1 1 7 3
2 6 9 5
3 3 8 2
4 7 3 9
5 5 2 9

#define second data frame
df2 <- data. frame (B=c(1, 3, 3, 4, 5),
                  C=c(7, 7, 8, 3, 2),
                  D=c(3, 3, 6, 6, 8))

df2

  BCD
1 1 7 3
2 3 7 3
3 3 8 6
4 4 3 6
5 5 2 8

请注意,df1 具有以下列名称:

  • VS

请注意 df2 具有以下列名称:

  • VS
  • D

列名不匹配,因此如果我们尝试使用 R 中的 rbind() 函数,它将抛出错误。

 #attempt to use rbind to row bind data frames
rbind(df1, df2)

Error in match.names(clabs, names(xi)): 
  names do not match previous names

相反,我们可以使用 dplyr 包中的bind_rows()函数来组合这两个数据帧,并简单地用 NA 值填充结果数据帧中的缺失值:

 library (dplyr)

#combine df1 and df2
bind_rows(df1, df2)

    ABCD
1 1 7 3 NA
2 6 9 5 NA
3 3 8 2 NA
4 7 3 9 NA
5 5 2 9 NA
6 NA 1 7 3
7 NA 3 7 3
8 NA 3 8 6
9 NA 4 3 6
10 NA 5 2 8

其他资源

如何在R中将两列合并为一列
如何在 R 中堆叠数据框列

添加评论

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