Создать последовательность дополнений - PullRequest
2 голосов
/ 07 мая 2019

Я хочу извлечь определенные строки моего информационного кадра, следуя последовательности чисел.

Последовательность должна быть:

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

Так что он всегда начинается со строки 7, а затем идет +7 +7 +10, и это должно повторяться до конца.

Я знаю rep и seq , но я не знаю, как справиться с этим +10 после +7. Есть идеи?

Ответы [ 2 ]

3 голосов
/ 07 мая 2019

Попробуйте

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)
2 голосов
/ 07 мая 2019

Мы можем использовать 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
...