4

我在 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
4

2 回答 2

7
split(seq_along(a), a)
# $A
# [1] 1 2 3 7
# 
# $B
# [1] 4 5
# 
# $C
# [1] 6
于 2013-06-18T21:39:29.140 回答
0

一个可能的解决方案:

mywhich<-function(x){
    out<-which(a==x)
    return(out)
}
l <- sapply(unique(a), mywhich)
于 2013-06-18T20:48:28.673 回答