Что было бы хорошим способом заполнить значения NA
предыдущим значением времени (1+growth)
?
df <- data.frame(year=0:6,
price1=c(1.1, 2.1, 3.2, 4.8, NA, NA, NA),
price2=c(1.1, 2.1, 3.2, NA, NA, NA, NA))
growth <- .02
В этом случае я хотел бы, чтобы отсутствующие значения в price1
заполнялись 4.8*1.02
, 4.8*1.02^2
и 4.8*1.02^3
. Точно так же я хотел бы, чтобы отсутствующие значения в price2
заполнялись 3.2*1.02
, 3.2*1.02^2
, 3.2*1.02^3
и 3.2*1.02^4
.
Я пробовал это, но я думаю, что его нужно как-то повторить (apply
?):
library(dplyr)
df %>% mutate(price1=ifelse(is.na(price1),
lag(price1)*(1+growth), price1))
Я не использую dplyr
для чего-либо еще (пока), поэтому будет полезно что-то из базы R или plyr
или аналогичного.