r - 根据另一个向量中的索引组合列表中的元素

标签 r list indexing

给定一个列表 (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/

相关文章:

如果子列表中存在给定元素,Python 将返回子列表的元素

MySQL 索引性能...我应该在这个简单的表上创建索引吗?

r - 将参数传递给 R 中的自定义函数和过滤器

r - 使用 <<- 在 apply()-d 函数中分配变量

java - java中List的声明和使用

javascript - 获取数组中相等点的索引

r - 每> n个字符替换子字符串(有条件地为空格插入换行符)

r - R中非空数值向量的维数

python - 从列表中删除重复项

list - Prolog - 列表中最常见的长度为 N 的序列