r - 在 R 中合并 data.frame

标签 r dataframe

我有一个关于在 R 中使用 data.frame 的特定合并类型的问题(发现了很多类似的问题,但无法解决我的特定问题)

假设我有两个数据框,每个数据框有两列 X1、X2:

df1 =

            X1         X2
    1  '01.01.2000'    4
    2  '01.01.2001'    5
    3  '01.01.2002'    6

df2 =

            X1         X2
    1  '01.01.2002'    8
    2  '01.01.2003'    9
    3  '01.01.2004'    10

我想要的是根据以下规则合并的数据框:

  1. 如果 X1 中的值仅在df1 , 使用 X2 的值在 df1
  2. 如果 X1 中的值在两个df1df2使用 X2 的值来自 df2
  3. 如果 X1 中的值仅在df2 , 使用 X2 的值在 df2

对于 df1df2以上,这意味着:

dfMerged =

            X1         X2
    1  '01.01.2000'    4
    2  '01.01.2001'    5
    3  '01.01.2002'    8
    4  '01.01.2003'    9
    5  '01.01.2004'    10

目前,我使用的解决方案非常慢,先合并,然后遍历所有行。还尝试了使用 dplyr::Union 等的各种方法,但找不到合适的解决方案。 非常感谢任何帮助!

最佳答案

您可以使用以下内容。它只是行绑定(bind) data.frames 并且在重复的情况下(基于 X1)df1 的行将被删除。

library(dplyr)
df1 <- data.frame(X1 = c("01.01.2000", "01.01.2001", "01.01.2002"),
                  X2 = c(4, 5, 6), stringsAsFactors = F)
df2 <- data.frame(X1 = c("01.01.2002", "01.01.2003", "01.01.2004"),
                  X2 = c(8, 9, 10), stringsAsFactors = F)

dfMerged <- bind_rows(df2, df1) %>% 
  distinct(X1, .keep_all = TRUE) %>% 
  arrange(X1, X2)

关于r - 在 R 中合并 data.frame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52035406/

相关文章:

r - 如何为 R 中的一个因子选择 pch 符号?

r - R中整数向量的大小

r - 用于 glm.fit 的 predict() 不起作用。为什么?

python - df.append() 没有 append 到 DataFrame

python - 最有效的 groupby 方式 => 聚合 pandas 中的大型数据框

r - 将 R 包文档导出到网页

r - 从数据框中删除命名变量的温和方法

python - 从多索引数据框中获取n个最大值

使用 R 替换包含 NA 的数据框中多列的异常值

r - 采样对数正态分布到精确均值和sd