我在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
我在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
mywhich <- function (x) which(a == x)
这个一次性的表达式呢?就此而言,mywhich
是特定于a
的,因此在这里使用命名函数毫无意义 - 只需使用sapply(unique(a), function (x) which (x == a))
即可。 - Konrad Rudolphsapply
,根据输入的不同,它不会总是返回一个列表(尝试a <- LETTERS[1:3]
),除非您添加simplify = FALSE
。 - flodel