【问题标题】:How to mutate with ifelse and missing values?如何使用 ifelse 和缺失值进行变异?
【发布时间】:2019-04-23 09:41:22
【问题描述】:

我正在尝试用另一列中同一行中的值填充一列,其中缺少值。我正在尝试使用 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$isanimal[is.na(df$isanimal)] &lt;- df$animals[is.na(df$isanimal)] 吗?

标签: r if-statement na dplyr


【解决方案1】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多