Я пытаюсь заполнить NA в переменной, используя другую коррелированную переменную согласно приведенному ниже коду.
test <- tibble(x = c(1,4,3,2,5,6), y = c(2,NA,6,NA,NA,5))
test <- test %>% mutate(chng = x/lag(x,1))
for(i in 1:nrow(test)){
if(is.na(test$y[i])) test$y[i] <- test$y[i - 1] * test$chng[i]
}
Могу ли я выполнить ту же операцию в dplyr?Я попытался по очереди, но кажется, что он не распознает функцию задержки.
test %>% rowwise() %>% mutate(y = ifelse(is.na(y), lag(y,1) * chng, y))
Несколько NA в ряду также не позволяют мне создать новый столбец, состоящий из запаздывающей переменной.