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

使用部分匹配的另一个数据帧填充数据帧中的列

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

    使用R,我试图通过在ID变量上进行匹配,使用另一行(约170行)来部分填充数据帧(约200行)。大约50%的ID匹配,我想把其他值留空。

    例子:

    enter image description here

    enter image description here

    我想创建的是:

    enter image description here

    我一直在想办法做到这一点,但被卡住了。使用'merge'函数可以消除其他数据帧中没有对应值的任何行,但我想保留DF1中的所有ID。

    提前感谢!

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

    您可以使用 all.x 合并:

    df1 = data.frame(ID = c("AA","AB","AC","AD","AE","AF"))
    df2 = data.frame(ID = c("AA","BA","BB","AC"), Var1 = c(1,1,2,2), Var2 = c(2,2,2,2))
    
    merge(x = df1, y = df2, by = "ID", all.x = TRUE)