如何在 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
或使用lapply
和unlist
unlist(lapply(input, seq))
假设我有一个名为 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
或使用lapply
和unlist
unlist(lapply(input, seq))