r:replace_na()不替换NA

时间:2018-12-07 22:51:09

标签: r dplyr tidyverse tidyr magrittr

我有一个变量,其NA称为df$salesContribution

我使用dplyr在下面创建了一条语句,但无法弄清楚为什么我的df$salesContribution仍然返回NA:

df<- df %>% 
  mutate(salesContribution = as.numeric(salesContribution)) %>% 
  replace_na(0)

0是否未注册?

4 个答案:

答案 0 :(得分:1)

看起来像你想要的

df$salesContribution <- df$salesContribution %>% as.numeric() %>% replace_na(0)

答案 1 :(得分:0)

您可以使用基本replace

df<- df %>% 
  mutate(salesContribution = replace(as.numeric(salesContribution), which(is.na(salesContribution)), 0)

答案 2 :(得分:0)

如果使用data.table软件包,您可以执行以下操作:您可以尝试执行以下操作: x[is.na(field_name)][, field_name := replacement_value]

data.frame也应该有类似的语法。

答案 3 :(得分:0)

如果变量是一个因素,

replace_na()将不起作用,并且替换还不是您的因素的水平。如果这是问题所在,则可以在运行replace_na()之前将因子0的其他级别添加到0,或者可以先将变量转换为数字或字符。