Я в целом понимаю, что делает семейство функций применения, но у меня возникают определенные проблемы с его использованием для изменения нового столбца на основе другого столбца с пропущенными значениями.Я могу выполнить свою задачу с помощью цикла for, но я хочу ускорить производительность, используя функции типа применения
Скажем, у меня есть временной ряд индексов, которые начинаются с сегодняшнего дня и заканчиваются через несколько лет,Мои оригинальные индексы существуют только в течение первых нескольких лет.Затем я хочу искусственно расширить эти индексы, используя предполагаемое изменение% (скажем, 10%) для оставшихся лет, и сохранить его как новый столбец.
Вот мой примерный набор данных:
data <- data.frame(
date = seq.Date(as.Date("2019-01-01"),as.Date("2021-01-01"),"3 months"),
index = c(1,1.2,1.4,1.5,1.6,1.7,NA,NA,NA)
)
Теперь я могу создать новый столбец index2, используя цикл for:
data$index2 <- 1
for (i in 1:nrow(data)) {
if (!is.na(data$index[i])) {
data$index2[i] = data$index[i]
}
else {
data$index2[i] = data$index2[i-1]*1.1
}
}
Однако я не могу понять, как мне этого добиться, используя функции apply.Еще раз спасибо за любой совет.