根据其他列r dplyr中的值替换列r中的NA

bpzcxfmw  于 2023-03-15  发布在  其他
关注(0)|答案(1)|浏览(163)

我有一个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))

我想根据ID中的值替换var3中的NA,如下所示:

df %>% 
  mutate(var3 = case_when(var3 == NA  & ID == 3 ~ 5,
                        var3 == NA  & ID == 5 ~ 5,
                        var3 == NA  & ID == 7 ~ 5,
                        TRUE ~ var3
  ))

但不知什么原因它不起作用?

hs1ihplo

hs1ihplo1#

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
  ))

相关问题