У меня уменьшенный кадр данных:
df <- data.frame(Name=c('A','A','B','B','B','B','A','A','A','B'),
Date=c('2018-04','2018-05','2018-06','2018-07','2018-08','2018-09','2018-10','2018-11','2018-12','2019-01'),
Value=c(4,1,2,NA,4,6,NA,8,3,5))
Я пытаюсь заменить NA последней известной числовой переменной.В созданном фрейме данных первый NA сверху должен быть заменен на 2, 2-й NA заменен на 1.
Я пробовал tidyverse из этого поста: Заменить 0 на предыдущее ненулевое значениеза идентификатор (отставание)
И применил его так:
df <- df %>%
group_by(Name) %>%
mutate(x = replace(Value,NA,0)) %>% fill(x)
, который заменяет его по назначению.Однако в больших данных я не уверен, что мой код обратного обращения верен, так как мой тип R зависает на реальных данных после достижения 100%.
| =============================================================== | Осталось 100% ~ 0 с
Надеюсь, кто-то может указать мне правильное направление, почему он зависает или есть альтернативное решение (в случаеаппаратные ограничения) при получении последнего числового значения идентификатора (имени), если его последнее значение равно NA.