DF<-data.frame(id=c(1,1,2,3,3),code=c("A","NA","A","NA","E")) > DF id code 1 1 A 2 1 NA 3 2 A 4 3 NA 5 3 E
Желаемый результат:
id code 1 1 A 2 1 A 3 2 A 4 3 E 5 3 E
Я хочу заменить NA в каждой группе значением, отличным от NA.
Best H
Мы можем использовать
library(dplyr) DF %>% group_by(id) %>% mutate(code = first(code[!is.na(cod)]))
Или также может быть fill, если намерение состоит в том, чтобы заменить NA на предыдущий не-NA
fill
library(tidyr) DF %>% group_by(id) %>% fill(code)