如何在 R 中获取数字向量的元素,并创建一个包含从 1 开始的序列的新向量:(每个元素)

How to take elements of a numeric vector in R, and create a new vector containing seq from 1:(each element)

假设我有一个名为 input <- c(8,5,2) 的向量。我想创建一个新向量,其中本质上是 c(1:8, 1:5, 1:2)。我可以通过以下丑陋的方式来做到这一点:

input <- c(8,5,2);
newvec <- c();
for(num in input) newvec <- append(newvec, 1:num);
newvec

但我觉得它应该可以在线完成,而且我可能只是忘记了一个简单的解决方案。

更简单的 R 选项是 sequence

sequence(input)
#[1] 1 2 3 4 5 6 7 8 1 2 3 4 5 1 2

或使用lapplyunlist

unlist(lapply(input, seq))