代码之家  ›  专栏  ›  技术社区  ›  Lee

我想rbind 2行,但在R中不重叠行

  •  1
  • Lee  · 技术社区  · 1 年前

    我有 data1 data2

    data1 <- data.frame(date = c(123, 124, 125, 126),
                        peter = c(10, 11, NA, NA),
                        turner = c(20, 21, NA, NA))
    
    data2 <- data.frame(date = c(124, 125, 126, 127, 128),
                        peter = c(12, 10, 30, 50, 70),
                        turner = c(23, 20, 40, 60, 80))
    

    我的目标是 rbind 数据1 数据2 然而,正如您所看到的, date 重叠。我必须确保当我绑定它们时, 日期 必须不重叠。因此,我想使用 数据1 并使用中的其他行 数据2 把它们绑在一起。在这个例子中, 日期 =124125126重叠。因此,我想要的输出应该是这样的:

    data=data.frame(date=c(123,124,125,126,127,128), peter=c(10,12,10,30,50,70), turner=c(20,23,20,40,60,80))
    

    我不知道在R里该怎么做。

    1 回复  |  直到 1 年前
        1
  •  3
  •   lroha    1 年前

    听起来你想要 dplyr::rows_upsert() 其通过键添加新行或覆盖现有行:

    library(dplyr)
    
    rows_upsert(data1, data2, by = "date")
    
      date peter turner
    1  123    10     20
    2  124    12     23
    3  125    10     20
    4  126    30     40
    5  127    50     60
    6  128    70     80