gpt4 book ai didi

r - 在 R 中合并 data.frame

转载 作者:行者123 更新时间:2023-12-02 07:18:33 24 4
gpt4 key购买 nike

我有一个关于在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com