Я хочу определить группы, в которых отсутствуют значения только для данной переменной. Мои данные выглядят так:
id <- seq(1:4)
year <- c(2005, 2006, 2007, 2008)
y <- c(6, 11, NA, NA, NA, NA, NA, NA, 9, NA, NA, 7, 8, 7, NA, 12)
test <- data.frame(id, year, y)
arrange(test, desc(id))
print(test)
Я попытался сгруппировать данные по идентификатору и создал переменную allNA, которая должна разделять группы, у которых есть только отсутствующие значения (мне также нужно сохранить эти строки нетронутыми в конечном результате ). Затем я экстраполировал на группы, у которых есть некоторые не пропущенные значения:
test %>%
group_by(id) %>%
mutate(allNA = !all(is.na(y))) %>%
filter(allNA) %>%
select(-allNA) %>%
mutate(y2=na.spline(y))
Я продолжаю получать противоречивые результаты для моей экстраполяции. Иногда после создания переменной allNA я вижу некоторые значения FALSE, и значения 2007 года остаются отсутствующими или отбрасываются, но иногда, когда я выполняю код, все значения TRUE и все экстраполируются. Интересно, выполняет ли переменная allNA ту работу, которую она должна делать. Из-за этого я решил сначала определить группы _ здесь 2007 год _, у которых есть только НП, но я не знаю, как это сделать, и решить проблему экстраполяции.