【问题标题】:Index of the first occurence of each value in a vector [duplicate]向量中每个值第一次出现的索引[重复]
【发布时间】:2016-03-18 11:50:38
【问题描述】:

我有一个向量,我想获取每个唯一值第一次出现的位置(索引)。

vec <- c(4,4,4,3,3,3,5,4,5,4,3,3,56)
(pos <- ?????????)

我想要回报

# 1  4  7  13

1 是 4 的第一个索引,4 是 3 的第一个索引,依此类推。

【问题讨论】:

  • ?duplicated; which(!duplicated(vec))
  • @alexis_laz 这就是我想接受的答案

标签: r


【解决方案1】:

类似于@Pratik 的方法

您可以将matchunique 一起使用

match(unique(vec), vec)

#[1]  1  4  7 13

【讨论】:

    【解决方案2】:

    以下代码应该可以为您解决问题:

    vec <- c(4,4,4,3,3,3,5,4,5,4,3,3,56)
    
    firstUniqueOccurrence <- function(vec) {
        unq <- unique(vec)
        sapply(unq, function(x) {min(which(vec == x))})
    }
    
    firstUniqueOccurrence(vec)
    
    [1]  1  4  7 13
    

    【讨论】:

      【解决方案3】:

      根据您的矢量元素,尝试使用以下命令来获得所需的输出。

      匹配(c(4,3,5,56), vec)

      【讨论】:

        猜你喜欢
        • 2014-07-15
        • 1970-01-01
        • 1970-01-01
        • 2020-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-20
        相关资源
        最近更新 更多