You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言二元线性回归计算报错求助:NA/NaN/Inf in 'y'

报错原因解析与解决建议

报错原因

核心问题是你的因变量y里存在无效数据:

  • 错误提示NA/NaN/Inf in 'y':说明y列里有缺失值(NA)、非数值(NaN)或者无穷大(Inf)的内容,而线性回归lm()要求输入的y必须是纯数值型且无这些无效值。
  • 附带的警告NAs introduced by coercion:是R在尝试把y列的数据转换成数值型时失败了,比如y列里混了文字、特殊符号、空格这类没法转成数字的内容,强制转换后就生成了NA。

解决建议

  • 先排查y列的具体问题:
    • 用head(dataset$y)查看y列前几行,有没有奇怪的内容(比如“无”“N/A”空格、符号);
    • 用table(is.na(dataset$y))统计y列里有多少缺失值;
    • 用range(dataset$y, na.rm=TRUE)检查有没有无穷大(Inf/-Inf)的数值。
  • 清理无效数据:
    • 如果是转类型生成的NA,先把y列转成标准数值型:dataset$y <- as.numeric(as.character(dataset$y));
    • 删掉含NA或无穷大的行:dataset <- dataset[!is.na(dataset$y) & is.finite(dataset$y), ]。
  • 检查Excel源文件:
    • 打开Excel看看y列是不是混了非数字单元格,比如有备注、格式为文本的数字,或者看起来空白但实际有空格的单元格,手动清理后再导入。
  • 优化数据导入:
    • 用readxl::read_excel()导入时,指定y列的类型为数值型,比如read_excel("你的文件.xlsx", col_types = c(..., "numeric", ...))(把对应位置改成"numeric"),避免导入时自动转换出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:01:22