【问题标题】:How to compare two columns and export the matching value in the third column [duplicate]如何比较两列并导出第三列中的匹配值[重复]
【发布时间】:2022-01-19 07:01:19
【问题描述】:

我试图找出 R 中是否有一种方法可以将数据框 (x) 中的一列的值与第二个数据框 (y) 的第一列中的值进行比较。如果它们匹配,则将 y 的第 2 列中的匹配值导出到新的数据框 (z)。问题是 y 的行数比 x 多。我尝试运行y$X2[x$X1 == y$X1]z$X1 <- ifelse(x$X1 == y$X1, y$X2, ifelse(x$X1 != y$X1, '')),但遇到了“更长的对象长度不是更短的对象长度的倍数”的错误。

数据帧 x 和 y 的示例

x <- data.frame("X1" = c(2,33,45,67,32,5) 

y <- data.frame("X1" = c(2,33,37,45,60,79,67,32,5,15), "X2" = c(A,B,C,D,E,F,G,H,I,J)) 

所以我要找的是z$X1 = A,B,D,G,H,I

任何帮助都会很棒,谢谢

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    你可以试试

    z <- data.frame(
      X1 = y$X2[na.omit(match(x$X1, y$X1))]
    )
    z
    
      X1
    1  A
    2  B
    3  D
    4  G
    5  H
    6  I
    

    【讨论】:

    • 谢谢你的完美解决,我感激不尽。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多