Благодарю всех вас за ваше драгоценное время. Я хотел бы иметь таблицу с первым столбцом без лагов, вторым столбцом с одним отставанием, третьим столбцом с двумя отставаниями и т.д. c., Как на картинке. У меня есть код, который действительно выполняет эту работу, но только если вы запустите код один раз. Если вы запустите код два или три раза, вы заметите, что происходят дополнительные сдвиги (лаги). Я был бы очень благодарен, если бы кто-нибудь из вас помог мне получить тот же результат независимо от того, сколько раз запускался код.
Скриншот:
library(dplyr)
library(data.table)
d <- structure(list(inv = c(20, 18, 46, 28, 10, 17, 96, 37), c = c(1, 0.999735, 0.912009, 0.596777,
0.293534, 0.122216, 0.046563, 0.016929)), row.names = c(NA, -8L), class = c("tbl_df", "tbl", "data.frame"))
G <- matrix(d$inv)
W <- matrix(d$c)
K <- cbind(W%x%t(G))
dtK <- data.table(K)
z <- dtK[, names(dtK) := Map(shift, .SD, seq_along(.SD)-1L, fill = 0), .SDcols = names(dtK)]
z