[英]How to replace every six row in a data set with its lag starting from 7th row
我想用滯后替換數據集中xts
中的每第六行。 這個過程應該從第 7 行開始,也就是說第 7 行會被第 6 行替換,第 13 行會被第 12 行替換,以此類推。
這是使用子集的簡單方法:
myxts <- xts::xts(x = 1:100, order.by = seq.Date(from = as.Date("2019-10-17"), by = "d", length.out = 100))
myxts[1:floor(nrow(myxts) / 6) * 6 + 1, ] <- myxts[1:floor(nrow(myxts) / 6) * 6, ]
2019-10-17 1
2019-10-18 2
2019-10-19 3
2019-10-20 4
2019-10-21 5
2019-10-22 6
2019-10-23 6
2019-10-24 8
2019-10-25 9
2019-10-26 10
2019-10-27 11
2019-10-28 12
2019-10-29 12
2019-10-30 14
2019-10-31 15
如果索引在 6 的倍數后為 1,則下面的代碼將從索引中減去 1。因此 7 將變為索引 6,13 將變為 12,依此類推。用這個新索引對 xts object 進行子集將給出您描述的結果
i <- seq(nrow(myxts))
myxts[i - (i %% 6L == 1L),]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.