You need to enable JavaScript to run this app. 在R语言中如何将数据框内的#DIV/0!异常值批量替换为0
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中如何将数据框内的#DIV/0!异常值批量替换为0

解决方案

方法1:基础R实现(无需加载第三方包)

直接遍历整个数据框匹配#DIV/0!并替换为0:

# 全数据框替换异常值
fortuna_CD[fortuna_CD == "#DIV/0!"] <- 0

# 可选:将所有数值相关列转为数值类型(避免后续计算均值/标准差时报错)
cols_to_convert <- !colnames(fortuna_CD) %in% c("Playing.Position", "Week")
fortuna_CD[cols_to_convert] <- lapply(fortuna_CD[cols_to_convert], as.numeric)

方法2:tidyverse/dplyr实现(代码更易读,灵活度更高)

如果需要指定替换列、或者后续还要做其他数据处理,推荐用这个方法:

library(dplyr)

fortuna_CD <- fortuna_CD %>%
  # 遍历所有列替换异常值
  mutate(across(everything(), ~ifelse(.x == "#DIV/0!", 0, .x))) %>%
  # 将除位置、周次外的所有列转为数值类型
  mutate(across(-c(Playing.Position, Week), as.numeric))

验证替换结果

执行完替换后可以运行下面的代码,确认所有异常值都被清理:

sum(fortuna_CD == "#DIV/0!")
# 正常应该返回0,说明没有剩余的#DIV/0!值

内容的提问来源于stack exchange,提问作者xhi4m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 07:57:04