【问题标题】:Replace #DIV/0! values with 0 in R替换#DIV/0! R中为0的值
【发布时间】:2021-10-13 18:20:45
【问题描述】:
 Session info 
 setting  value                       
 version  R version 4.0.5 (2021-03-31)
 os       Windows 10 x64              
 system   x86_64, mingw32             
 ui       RStudio                     
 language (EN)                        
 collate  English_United Kingdom.1252 
 ctype    English_United Kingdom.1252 
 tz       Europe/London               
 date     2021-08-10 

我试图找到一种方法来替换“#DIV/0!”我的数据框中的值带有“0”。

我认为这将是一个常见的“问题”,但在我的搜索中,我找到了仅用于替换 NA、使用 IFERROR 进行直接计算或使用 #DIV/0! 完全删除行的解决方案。

我的数据集如下所示:

> tail(fortuna_CD)
    Playing.Position Week SUM.Weekly.Total.Distance SUM.HSR SUM.SD SUM.ACC.DEC Monotony.Total.Distance Monotony.HSR Monotony.Player.Load Monotony.SD
115               CD   25                      1973       0      0           2                    0.41      #DIV/0!                 0.38     #DIV/0!
116               CD   26                         0       0      0           0                 #DIV/0!      #DIV/0!              #DIV/0!     #DIV/0!
117               CD   27                         0       0      0           0                 #DIV/0!      #DIV/0!              #DIV/0!     #DIV/0!
118               CD   28                     17987     133      2         241                    1.08         0.76                 1.16        0.38
119               CD   29                     21435     420   1095         395                    0.94         0.94                 1.00        0.40
120               CD   30                     14466     113     45         297                    0.79         0.65                 0.79        0.38
    Monotony.High.Intensity.Actions Strain.Total.Distance Strain.HSR Strain.Player.Load Strain.SD Strain.High.Intensity.Actions
115                            0.38                   805    #DIV/0!                 86   #DIV/0!                             1
116                         #DIV/0!               #DIV/0!    #DIV/0!            #DIV/0!   #DIV/0!                       #DIV/0!
117                         #DIV/0!               #DIV/0!    #DIV/0!            #DIV/0!   #DIV/0!                       #DIV/0!
118                            1.04                 19465        101               2203         1                           251
119                            0.84                 20095        394               1919       440                           331
120                            0.77                 11446         73               1277        17                           229

由于我的数据分析将包括每列的均值和标准差,我只想替换这些单元格而不是完全省略它们,因为这会改变结果。 提前感谢您的时间和帮助!

【问题讨论】:

  • 试试data[data == '#DIV/0!'] <- 0
  • 成功了!非常感谢@Ronak!我担心找不到任何帖子“解决”这个问题,但显然,我一定是最无知的 R 用户!
  • @RonakShah,作为答案发布?

标签: r replace nan data-cleaning


【解决方案1】:

要将 '#DIV/0!' 值替换为 0,您可以这样做 -

data[data == '#DIV/0!'] <- 0

由于您在数据中有值'#DIV/0!',它会将值更改为字符。您可以使用type.convert 更改类。

data <- type.convert(data, as.is = TRUE)

【讨论】:

    猜你喜欢
    • 2017-10-14
    • 2021-07-08
    • 2021-07-02
    • 2016-12-04
    • 1970-01-01
    • 2019-10-02
    • 2021-05-03
    • 2021-06-09
    • 2021-10-15
    相关资源
    最近更新 更多