在R中,我如何获得向量的每个出现元素的第一次出现的位置

时间:2016-03-18 11:50:39

标签: r

E.g。与

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

我想要回报

1  4  7  13

3 个答案:

答案 0 :(得分:6)

与@ Pratik的方法类似

您可以将matchunique

一起使用
match(unique(vec), vec)

#[1]  1  4  7 13

答案 1 :(得分: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

答案 2 :(得分:2)

根据你的vector元素,尝试使用下面的命令来获得所需的输出。

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