📌  相关文章
📜  如何在 R 中基于多列合并 DataFrame?(1)

📅  最后修改于: 2023-12-03 14:52:32.221000             🧑  作者: Mango

如何在 R 中基于多列合并 DataFrame?

在 R 中,合并多个 DataFrame 可以使用 merge() 函数。merge() 函数有一些参数可以控制如何合并 DataFrame,主要有以下两种方式:

  1. 基于一个共同的列合并 DataFrame
  2. 基于多个共同的列合并 DataFrame
基于一个共同的列合并 DataFrame

如果要基于一个共同的列合并 DataFrame,可以使用 merge() 函数的 by 参数。by 参数可以传递一个向量,其中包含了待合并的两个 DataFrame 共同的列名。

下面的例子演示了如何在 R 中基于一个共同的列合并 DataFrame:

df1 <- data.frame(id = 1:3, name = c("Alice", "Bob", "Charlie"), age = c(25, 30, 35))
df2 <- data.frame(id = 1:3, salary = c(50000, 60000, 70000))

merged_df <- merge(df1, df2, by = "id")

上面的代码中,我们创建了两个 DataFrame df1df2,并指定了 id 列作为两个 DataFrame 的共同列。然后,我们使用 merge() 函数,将 df1df2 按照 id 列进行合并,并将合并结果赋值给 merged_df

基于多个共同的列合并 DataFrame

如果要基于多个共同的列合并 DataFrame,可以使用 merge() 函数的两个参数:by.xby.yby.x 参数可以传递一个向量,其中包含了待合并的第一个 DataFrame 中的多个列名;by.y 参数可以传递一个向量,其中包含了待合并的第二个 DataFrame 中的多个列名。

下面的例子演示了如何在 R 中基于多个共同的列合并 DataFrame:

df1 <- data.frame(id = 1:3, name = c("Alice", "Bob", "Charlie"), age = c(25, 30, 35), gender = c("女", "男", "女"))
df2 <- data.frame(id = 1:3, salary = c(50000, 60000, 70000), gender = c("女", "男", "女"))

merged_df <- merge(df1, df2, by.x = c("id", "gender"), by.y = c("id", "gender"))

上面的代码中,我们创建了两个 DataFrame df1df2,并指定了 idgender 列作为两个 DataFrame 的共同列。然后,我们使用 merge() 函数,将 df1df2 按照 idgender 列进行合并,并将合并结果赋值给 merged_df

以上就是如何在 R 中基于多列合并 DataFrame 的介绍。

代码片段:

# 基于一个共同的列合并 DataFrame
df1 <- data.frame(id = 1:3, name = c("Alice", "Bob", "Charlie"), age = c(25, 30, 35))
df2 <- data.frame(id = 1:3, salary = c(50000, 60000, 70000))

merged_df <- merge(df1, df2, by = "id")

# 基于多个共同的列合并 DataFrame
df1 <- data.frame(id = 1:3, name = c("Alice", "Bob", "Charlie"), age = c(25, 30, 35), gender = c("女", "男", "女"))
df2 <- data.frame(id = 1:3, salary = c(50000, 60000, 70000), gender = c("女", "男", "女"))

merged_df <- merge(df1, df2, by.x = c("id", "gender"), by.y = c("id", "gender"))