【问题标题】:Create sequence of additions创建添加序列
【发布时间】:2019-09-25 02:32:35
【问题描述】:

我想按照一系列行号提取数据帧的特定行。

顺序应该是:

7, 14, 21, 31, 38, 45, 55, 62, 69.....until 8760. 

所以它总是从第 7 行开始,然后转到+7 +7 +10,这应该重复到最后。

我知道repseq,但我不知道如何处理+7之后的+10。 有什么想法吗?

【问题讨论】:

    标签: r sequence repeat


    【解决方案1】:

    我们可以使用rep

    x1 <- rep(c(7, 10), c(2, 1))
    out <- cumsum(c(7, rep(x1, 8760 %/% sum(x1)))))
    out1 <- out[out < 8760]
    head(out1, 10)
    #[1]  7 14 21 31 38 45 55 62 69 79
    tail(out1, 10)
    #[1] 8685 8695 8702 8709 8719 8726 8733 8743 8750 8757
    

    【讨论】:

    • 谢谢!但这实际上给了我+7 +7 +10 +7 +7 +7 +10 ....它并不完全正确。我需要:[1] 7 14 21 31 38 45 55 62 69 79 .....
    【解决方案2】:

    试试

    x <- rep(c(7, 10), c(2, 1))
    out <- cumsum(c(7, rep(x, ceiling(8760 / sum(x)))))
    

    结果

    head(out, 10)
    # [1]  7 14 21 31 38 45 55 62 69 79
    
    tail(out)
    # [1] 8726 8733 8743 8750 8757 8767
    

    如果您希望 out8760 结尾,您可以这样做

    c(out[out < 8760], 8760)
    

    【讨论】:

    • 谢谢!但这实际上给了我+7 +7 +10 +7 +7 +7 +10 ....它并不完全正确。我需要:[1] 7 14 21 31 38 45 55 62 69 79 .....
    • @Essi 不错!
    猜你喜欢
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 2020-10-25
    相关资源
    最近更新 更多