I have a df :
df <- data.frame(ID = c(1, 2, 3, 3, 4, 5, 5, 7, 7, 8),
var1 = c('a', 'b', 'c', 'c', 'd', 'e', 'f', 'g', 'h', 'h'),
var2 = c(1, 1, 1, 0, 1, 1, 0, 0, 1, 0),
var3 = c(21, 50, 40, NA, 29, 45, NA, NA, NA, 46))
I would like to replace NAs in var3 based on the values in ID, with something like the following:
df %>%
mutate(var3 = case_when(var3 == NA & ID == 3 ~ 5,
var3 == NA & ID == 5 ~ 5,
var3 == NA & ID == 7 ~ 5,
TRUE ~ var3
))
But for some reason it doesn’t work?
>Solution :
df %>%
mutate(var3 = case_when(is.na(var3)==TRUE & ID == 3 ~ 5,
is.na(var3)==TRUE & ID == 5 ~ 5,
is.na(var3)==TRUE & ID == 7 ~ 5,
TRUE ~ var3
))