【发布时间】:2019-09-25 02:32:35
【问题描述】:
我想按照一系列行号提取数据帧的特定行。
顺序应该是:
7, 14, 21, 31, 38, 45, 55, 62, 69.....until 8760.
所以它总是从第 7 行开始,然后转到+7 +7 +10,这应该重复到最后。
我知道rep和seq,但我不知道如何处理+7之后的+10。 有什么想法吗?
【问题讨论】:
我想按照一系列行号提取数据帧的特定行。
顺序应该是:
7, 14, 21, 31, 38, 45, 55, 62, 69.....until 8760.
所以它总是从第 7 行开始,然后转到+7 +7 +10,这应该重复到最后。
我知道rep和seq,但我不知道如何处理+7之后的+10。 有什么想法吗?
【问题讨论】:
我们可以使用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
【讨论】:
试试
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
如果您希望 out 以 8760 结尾,您可以这样做
c(out[out < 8760], 8760)
【讨论】: