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

时间:2019-04-23 09:41:22

标签: r if-statement dplyr na mutate

我正在尝试用另一列的同一行中的值填充一列,其中我缺少值。我正在尝试使用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

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

1 个答案:

答案 0 :(得分:0)

尝试一下:

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