【问题标题】:Check if column data exists in column and return value of the another column in R检查列中是否存在列数据并返回R中另一列的值
【发布时间】:2022-11-28 06:20:36
【问题描述】:

我想检查 B 列中的值是否存在于 A 列中,如果存在并且与该行中的值相等,则创建另一个 D 列,从 C 列获取值(对于该行的 A)。

A B C D
a f 12 55
b a 23 12
c b 33 23
d c 1 33
e e 11 11
f d 55 1

这就是我所拥有的,但它没有正常工作,因为它只是通过检查 A 列中是否存在该值而不是比较它们来设置 D 的值。

  ifelse(df$B %in% df$A, df$C , NA)

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    使用match。默认情况下,如果没有匹配项,它返回 NA,在 NA 上的索引也为 'C' 返回 NA

    df1$D <-  with(df1, C[match(B, A)])
    

    -输出

    > df1
      A B  C  D
    1 a f 12 55
    2 b a 23 12
    3 c b 33 23
    4 d c  1 33
    5 e e 11 11
    6 f d 55  1
    

    数据

    df1 <- structure(list(A = c("a", "b", "c", "d", "e", "f"), B = c("f", 
    "a", "b", "c", "e", "d"), C = c(12L, 23L, 33L, 1L, 11L, 55L), 
        D = c(55L, 12L, 23L, 33L, 11L, 1L)), class = "data.frame", row.names = c(NA, 
    -6L))
    

    【讨论】:

      猜你喜欢
      • 2020-10-27
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      • 1970-01-01
      • 2022-11-13
      相关资源
      最近更新 更多