📜  R 中 Dplyr 包中的 Union() 和 union_all() 函数(1)

📅  最后修改于: 2023-12-03 15:19:40.155000             🧑  作者: Mango

R 中 Dplyr 包中的 Union() 和 union_all() 函数

当我们需要将两个数据集合并起来时,可以使用 R 中的 Union()union_all() 函数来实现。这两个函数都属于 Dplyr 包中的函数,可用于对数据集进行操作和处理。

Union() 函数

Union() 函数可以将两个数据集按给定的列合并,并去除重复行。语法如下:

Union(df1, df2, by = NULL)

参数说明:

  • df1:第一个数据集;
  • df2:第二个数据集;
  • by:要匹配的列名,为空时默认将两个数据集所有列进行匹配。

示例:

library(dplyr)

# 创建两个数据集
df1 <- data.frame(name = c("Alice", "Bob", "Cathy"),
                  age = c(20, 25, 30),
                  gender = c("female", "male", "female"))

df2 <- data.frame(name = c("Bob", "David", "Eva"),
                  age = c(25, 35, 27),
                  gender = c("male", "male", "female"))

# 按 name 列合并两个数据集
res <- Union(df1, df2, by = "name")
res

输出结果:

   name age gender
1 Alice  20 female
2   Bob  25   male
3 Cathy  30 female
4 David  35   male
5   Eva  27 female

可以看到,Union() 函数按照 name 列合并了两个数据集,去除了重复的 Bob 行。

union_all() 函数

union_all() 函数可以将两个数据集按给定的列合并,不去除重复行。语法如下:

union_all(df1, df2)

参数说明:

  • df1:第一个数据集;
  • df2:第二个数据集。

示例:

# 按 age 列合并两个数据集
res_all <- union_all(df1, df2)
res_all

输出结果:

    name age gender
1  Alice  20 female
2    Bob  25   male
3  Cathy  30 female
4    Bob  25   male
5  David  35   male
6    Eva  27 female

可以看到,union_all() 函数按照 age 列合并了两个数据集,并保留了重复的 Bob 行。

总的来说,Union() 函数和 union_all() 函数在数据集合并中都有重要作用,使用方法较简单,灵活性也较好。