要合并两个具有相同列名的数据框架,可以使用Merge函数。该函数可以按照指定的列名,将两个数据框架合并为一个新的数据框架。
以下是合并两个具有相同列名的数据框架的完整攻略:
- 准备要合并的两个数据框架
在这里,我们以两个数据框架df1和df2为例。两个数据框架都包含name、age和gender三列。
“`r
# 创建数据框架df1
df1 <- data.frame(name = c(“Amy”, “Bob”, “Charlie”), age = c(18, 21, 25), gender = c(“female”, “male”, “male”))
# 创建数据框架df2
df2 <- data.frame(name = c(“David”, “Eason”, “Amy”), age = c(22, 20, 25), gender = c(“male”, “male”, “female”))
“`
- 指定合并的列名
在这里,我们指定name列作为合并的依据。
r
# 指定合并的列名
merge_col <- "name"
- 执行Merge函数,合并两个数据框架
我们使用merge函数对两个数据框架进行合并。将df1和df2传递给merge函数,指定合并的列名为merge_col。
r
# 合并两个数据框架
merged_df <- merge(df1, df2, by = merge_col)
- 查看合并后的数据框架
最后,我们可以使用head函数查看合并后的数据框架。
r
# 查看合并后的数据框架
head(merged_df)
合并后的数据框架如下所示:
name age gender.x gender.y
1 Amy 18 female female
2 Amy 25 female female
3 Bob 21 male <NA>
4 Charlie 25 male <NA>
5 David 22 <NA> male
6 Eason 20 <NA> male
可以看到,合并后的数据框架包括原始数据框架的所有列和行。重复的行会进行合并,而没有重复的行会保留在数据框架中。
其中,合并后的数据框架包括4列:name、age、gender.x和gender.y。这是因为在两个原始数据框架中都有一个名为gender的列,为了避免冲突,Merge函数自动为它们添加前缀。在这里,gender.x和gender.y分别表示合并前两个数据框架中的两个gender列。除此之外,如果两个数据框列中列名不同时,可以使用by.x和by.y指定用来合并的列名,合并后的数据框架也会包含这些列。