【发布时间】:2012-01-14 23:47:56
【问题描述】:
假设我有 data.frame a
我用
m.fit <- lm(col2 ~ col3 * col4, na.action = na.exclude)
col2 有一些 NA 值,col3 和 col4 的值小于 1。
我一直在努力
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
NA/NaN/Inf in foreign function call (arg 1)
我检查了邮件列表,似乎是因为col2 中的NAs,但我尝试使用na.action=na.exclude/omit/pass,但它们似乎都不起作用。我在前 10 个条目上再次测试了lm,绝对不是因为NAs。这个警告的问题是每个谷歌结果似乎都指向NA。
是我误解了错误还是我错误地使用了lm?
数据位于kaggle。我正在使用线性回归对 MonthlyIncome 数据进行建模(因为我无法让某个 glm 家庭工作)。我已经创建了自己的变量以供使用,但如果您尝试使用已经存在的变量对 MonthlyIncome 进行建模,则会失败。
【问题讨论】:
-
m.fit<-lm(col2 ~ col3 + col4 + col3*col4, data=a, na.action=na.exclude)在指定模型时更具可读性 -
如果没有可重现的示例,很难回答您的问题。请参阅stackoverflow.com/q/5963269/567015 了解如何执行此操作的说明。
-
如果您将
a子集化为col2中没有NA 的行,然后运行lm(),您还会收到错误吗? -
不管怎样,
~ col3*col4等价于~ col3+col4+col3:col4,而~ col3+col4+col3*col4又等价于~ col3+col4+col3*col4(最后一个是无害的冗余) -
您在
lm中使用了哪些列?如果你在文件的标题行中使用名称,它比col2等更清晰。我尝试了几个列组合,无法重现你的错误。