我在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
答案 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)