【问题标题】:r - Index of vector elements according to another vectorr - 根据另一个向量的向量元素索引
【发布时间】:2021-07-28 23:46:46
【问题描述】:

假设两个字符,A 和 B:

A <- c("A", "B", "B", NA, "D2", "K")
B <- c("A", "B", "C", "D1", "D2", "E", "F", "K", "L")

虽然B 仅包含唯一条目,但A 中的元素不必是唯一的。

现在我想获取A 中元素的索引,因为它们出现在B 中,NAs 除外。因此,在上面的例子中,R 函数应该返回

1 2 2 5 8

提前非常感谢!

【问题讨论】:

    标签: r vector matching


    【解决方案1】:

    我们可以使用match

    c(na.omit(match(A, B)))
    #[1] 1 2 2 5 8
    

    【讨论】:

      【解决方案2】:

      这是另一个使用命名向量的基本 R 选项

      > na.omit(setNames(seq_along(B), B)[A])
       A  B  B D2  K
       1  2  2  5  8
      attr(,"na.action")
      <NA>
         4
      attr(,"class")
      [1] "omit"
      

      【讨论】:

        猜你喜欢
        • 2020-10-18
        • 1970-01-01
        • 2012-01-15
        • 1970-01-01
        • 1970-01-01
        • 2012-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多