У меня есть следующий фрейм данных (упрощенный) с переменной страны как фактор, а переменная значения имеет отсутствующие значения:
country value
AUT NA
AUT 5
AUT NA
AUT NA
GER NA
GER NA
GER 7
GER NA
GER NA
Следующее генерирует приведенный выше кадр данных:
data <- data.frame(country=c("AUT", "AUT", "AUT", "AUT", "GER", "GER", "GER", "GER", "GER"), value=c(NA, 5, NA, NA, NA, NA, 7, NA, NA))
Теперь я хотел бы заменить значения NA в каждом подмножестве страны, используя метод последнего наблюдения, перенесенного вперед (LOCF). Я знаю команду na.locf
в пакете zoo. data <- na.locf(data)
предоставит мне следующий фрейм данных:
country value
AUT NA
AUT 5
AUT 5
AUT 5
GER 5
GER 5
GER 7
GER 7
GER 7
Однако функция должна использоваться только для отдельных подмножеств, разделенных страной. Ниже представлен вывод, который мне нужен:
country value
AUT NA
AUT 5
AUT 5
AUT 5
GER NA
GER NA
GER 7
GER 7
GER 7
Я не могу придумать простой способ его реализации. Прежде чем начать с for-loops, мне было интересно, есть ли у кого-нибудь идеи, как это решить.
Большое спасибо!