Если вас не волнует скорость и вы не против подхода base
, вы можете сделать следующее:
window_var <- 3
data$desired.target <- c(rep(NA, window_var - 1),
sapply(1:(nrow(data) - window_var + 1),
function(x) min(data$existing.variable[x:(x + window_var - 1)])))
Первая часть - это установка окна, которое будет применено, во второй частиВы строите вектор, который заполняет первые строки символом NA, а затем динамически ищет минимум с помощью sapply
.
Но это просто для любопытства, возможно, вам лучше использовать zoo
, как уже предлагал @markus.
Однако функции прокрутки во всех пакетах обычно работают со ссылками на строки, и, если между ними имеются пробелы (например, пробелы между датами), вы можете воспользоваться sapply
.