【问题标题】:How to generate sequence when start is greater than stopstart大于stop时如何生成序列
【发布时间】:2018-11-22 15:15:43
【问题描述】:

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

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

> seq(10, 0, by=3)

seq.default(10, 0, by = 3) 中的错误:'by' 参数中的错误符号

【问题讨论】:

    标签: r vector seq


    【解决方案1】:
    seq(from = 10, to = 0, by = -3)
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:
        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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-07-03
          • 1970-01-01
          • 1970-01-01
          • 2012-06-23
          • 2016-03-09
          • 1970-01-01
          • 1970-01-01
          • 2015-07-11
          相关资源
          最近更新 更多