如何使用 ifelse 和缺失值进行变异?

How to mutate with ifelse and missing values?

我试图用另一列中同一行中的值填充一列,但我有缺失值。我正在尝试使用 dplyr 和 ifelse 来做到这一点。

当我执行下面的代码时,整个列变为 NA。

df
animals isanimal
1     cat   animal
2     cat   animal
3     dog     NA
4     dog     NA
5   mouse   animal

我试过的代码:

df <- df %>% mutate(isanimal = ifelse (df$isanimal == NA, df$isanimal == 
as.character(df$animals), df$isanimal == as.character(df$isanimal)))

我用这段代码得到了什么:

> df
animals isanimal
1     cat   animal
2     cat   animal
3     dog     NA
4     dog     NA
5   mouse   animal

> df2
animals isanimal
1     cat       NA
2     cat       NA
3     dog       NA
4     dog       NA
5   mouse       NA

任何帮助将不胜感激(包括帮助理解为什么这不起作用)。谢谢!

试试这个:

df %>% 
  mutate(isanimal = ifelse (is.na(isanimal),
    as.character(animals), as.character(isanimal)
    )
  )