我尝试从另一个列表创建以下形式的子列表,而不使用循环- 列表-[1、2、3、4、5] 结果-[[1],[1、2],[1、2、3],[1、2、3、4],[1、2、3、4、5]]
请不要介意我缺乏礼节/ R技能。我是Stackoverflow和R的新手。谢谢。
答案 0 :(得分:2)
使用seq_along
计算输入的索引,然后对每个索引应用一个函数,该函数给出相应的列表组件。 (在问题v
中实际上等于seq_along(v)
,因此,如果已知是这种情况,则可以将解决方案简化为lapply(v, seq_len)
。
v <- 1:5 # test input
lapply(seq_along(v), function(x) v[seq_len(x)])
给予:
[[1]]
[1] 1
[[2]]
[1] 1 2
[[3]]
[1] 1 2 3
[[4]]
[1] 1 2 3 4
[[5]]
[1] 1 2 3 4 5