给定一个向量列表,如何创建一个新列表并用向量索引填充它?例如,我需要
list(c(1), c(1,1,1), c(1,1))
变成
list(1, 2, 2, 2, 3, 3)
因此c(1)(索引1)为1,c(1,1,1)(索引2)为3,c(1,1)为3(索引3)。 没有循环可以做到这一点吗?感谢。
答案 0 :(得分:4)
使用rep
+ seq_along
+ lengths
:
rep(seq_along(lst), lengths(lst))
# [1] 1 2 2 2 3 3
seq_along
给出索引:
seq_along(lst)
# [1] 1 2 3
lengths
给出了每个索引的重复:
lengths(lst)
# [1] 1 3 2