给定一个列表 (a) 和一个与 a 长度相同的数字向量 (b):
a <- list(1, c(3, 7), 5)
b <- c(1,1,2)
如何创建一个长度为max(b)的新列表,其中a中的每个元素都根据b放入对应的索引中,如果出现多次则合并,这样你就得到了:
[[1]]
[1] 1 3 7
[[2]]
[1] 5
希望这应该非常有效地完成(没有循环),因为我的数据的维度往往非常大......
我很确定有一个我没有想过的明显解决方案......
感谢您的帮助
最佳答案
怎么样:
split(unlist(a), rep(b, sapply(a, length)))
$`1`
[1] 1 3 7
$`2`
[1] 5
关于r - 根据另一个向量中的索引组合列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11357265/