【问题标题】:Merging of dataframes with different number of columns合并具有不同列数的数据框
【发布时间】:2019-12-03 17:16:49
【问题描述】:

我有这两个数据框。

DF1:

DF2:

我希望我的输出 DF 是 DF1 以及来自 DF2 的 X1 的值。也就是说,这就是我希望输出的样子:

我曾尝试使用合并和连接,但无法获得所需的输出。主要问题似乎是由于 DF1 中的 ID 在 DF2 中有多个匹配项。我得到的结果数据框包含所有行,有点像这样:

我该如何解决这个问题?

谢谢。

(为表格图片道歉,我无法弄清楚如何即时创建表格)

【问题讨论】:

    标签: r dataframe join


    【解决方案1】:

    您可以使用match 返回DF2 中的第一个命中。

    DF1$X1  <- DF2$X1[match(DF1$ID, DF2$ID)]
    

    【讨论】:

      【解决方案2】:

      在第二个数据框中保留 ID 的唯一值,然后加入:

      library(tidyverse)
      DF2 <- DF2 %>% 
        distinct(ID, .keep_all = TRUE) %>% 
        select(ID, X1)
      
      res <- DF1 %>% 
        inner_join(DF2, by = "ID")
      
      glimpse(res)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-14
        • 1970-01-01
        • 1970-01-01
        • 2021-03-06
        • 1970-01-01
        • 2015-03-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多