当开始大于停止时如何生成序列

时间:2018-11-22 15:15:44

标签: r vector seq

我想生成类似于10, 7, 4, 1

的序列

seq函数无法做到(开始大于停止)。什么功能可以做到这一点?我宁愿不要循环遍历我的序列(这将非常耗时,因为我需要像这样处理大量的向量)。

> seq(10, 0, by=3)
  

seq.default(10,0,by = 3)错误:'by'参数登录错误

3 个答案:

答案 0 :(得分:4)

seq(from = 10, to = 0, by = -3)

答案 1 :(得分:0)

另一种方法可能是创建逻辑向量和子集。

n <- 3
(10:0)[c(TRUE, rep(FALSE, n - 1))]
#[1] 10  7  4  1

答案 2 :(得分:0)

10 - 0:3 * 3
#[1] 10  7  4  1

或者获取整数(不是浮点数):

typeof(10 - 0:3 * 3)
#[1] "double"

10L - 0:3 * 3L
#[1] 10  7  4  1