28

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)

メーリング リストを確認したところ、NAsが原因のようですが、col2使用してみましna.action=na.exclude/omit/passたが、どれも機能していないようです。lm最初の 10 エントリで再度テストしましたが、 NAs のせいではありません。この警告の問題は、すべての Google の結果が を指しているように見えることですNA

エラーを誤解したか、lm間違って使用していますか?

データはkaggleにあります。線形回帰を使用してMonthlyIncomeデータをモデル化しています (特定のglm家族を機能させることができなかったため)。使用する独自の変数を作成しましたが、既に存在する変数でMonthlyIncomeをモデル化しようとすると失敗します。

4

10 に答える 10

10

これに関する完全な説明については、A Beginner's Guide to Rという本を読む必要があります。具体的には、次のエラーについて言及しています。

lm.fit(x, y, offset = offset, singular.ok = singular.ok,...) のエラー: 外部関数呼び出しの NA/NaN/Inf (arg 4)

解決策は、強度データに小さな定数値 (たとえば 1) を追加することです。小さな値を追加することに関して、統計コミュニティで進行中の議論があることに注意してください。とはいえ、R で計算を行う場合、0 の対数を使用することはできません。

于 2015-07-23T16:19:01.227 に答える
0

col2 に相当するものが整数ではなく integer64 で、自然スプラインと多項式スプライン、splines::bs および splines:ns を使用しているときに、このエラーが発生しました。

m.fit <- lm(col1 ~ ns(col2))
m.fit <- lm(col1 ~ bs(col2, degree = 3))

標準整数への変換は私にとってはうまくいきました:

m.fit <- lm(col1 ~ ns(as.integer(col2)))
m.fit <- lm(col1 ~ bs(as.integer(col2), degree = 3))
于 2018-01-09T17:38:09.250 に答える