返回列表,包含向量中每个元素的索引

时间:2013-06-18 20:40:57

标签: r

我在R中有一个包含重复元素的向量

a<-c("A","A","A","B","B","C","A")

我想知道在列表中转换它的最有效方法,其中每个元素都是键,它在原始向量中的位置是值:

l<-list(A=c(1,2,3,7),B=c(4,5),C=c(6))
l
$A
[1] 1 2 3 7
$B
[1] 4 5
$C
[1] 6

2 个答案:

答案 0 :(得分:7)

split(seq_along(a), a)
# $A
# [1] 1 2 3 7
# 
# $B
# [1] 4 5
# 
# $C
# [1] 6

答案 1 :(得分:0)

可能的解决方案:

mywhich<-function(x){
    out<-which(a==x)
    return(out)
}
l <- sapply(unique(a), mywhich)