【问题标题】:R replacing NaN with 0 using dplyr [duplicate]R使用dplyr将NaN替换为0 [重复]
【发布时间】:2019-11-10 08:52:26
【问题描述】:

我的数据框看起来像这样 -

dataset = data.frame(ID=c(1:3),Count=c(22,NaN,13))

我正在尝试使用管道运算符将 NaN 替换为 0

dataset = dataset %>% replace('NaN',0)

但是这不起作用。 我查看了这个网站上的解决方案,但似乎都没有。

我们将不胜感激。

【问题讨论】:

  • dataset %>% mutate_at(vars(Count), ~replace(., is.nan(.), 0))
  • dataset[is.na(dataset)] <- 0 - 不需要 dplyr。
  • @DanM 我添加了几个目标,其中NaN 值被转换为 0。现在应该可以了吗?
  • 我不认为这个问题是第一个和第二个链接的重复,因为 NA 与 R 中的 NaN 不同。对于第三个和第四个链接,它可能是重复的,但具体在这个问题dplyr 中询问了包。然而,NaN 最常作为 0/0 和 sqrt 或负数的对数计算的结果而产生。因此,删除 NaN 的最佳方法可能是在生成代码之前对其进行更正。
  • @jay.sf 对于这个简单的例子来说,这是可行的,但一般来说,这对于像 OP 想要的那样需要管道操作员的解决方案来说是行不通的。

标签: r dplyr


【解决方案1】:

这样就可以了,甚至不需要 dplyr,因为它在 base 中:

dataset$Count[is.nan(dataset$Count)]<-0

【讨论】:

    猜你喜欢
    • 2020-11-19
    • 2018-09-09
    • 1970-01-01
    • 2018-03-12
    • 2021-06-27
    • 1970-01-01
    • 2019-02-28
    • 2016-07-18
    • 2017-07-30
    相关资源
    最近更新 更多