Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
给定一个列表 (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
这是另一种方式
> lapply(split(a, b), unlist) $`1` [1] 1 3 7 $`2` [1] 5