1. ホーム
  2. r

[解決済み] Rでデータフレームからinfを持つ行を削除する方法

2022-02-04 14:30:04

質問

非常に大きなデータフレームがあります( df ) は、約 35-45 の列 (変数) と 300 を超える行から構成されています。行の中には、単一または複数の変数に NA,NaN,Inf,-Inf 値が含まれているものがあり、私は na.omit(df) を使用して NA と NaN を含む行を削除することはできますが、Inf と -Inf を含む行を削除することはできません。 na.omit 関数を使用します。

検索していたら、こんなスレッドに出会いました。 RでInfとNaNを含む行を削除する で、修正したコードを使用しました。 df[is.finite(df)] しかし、Infと-Infの行は削除されず、このエラーも発生します。

Error in is.finite(df) : default method not implemented for type 'リスト'

編集

対応する1つまたは複数の列が inf および -inf を持つ場合でも、行全体を削除します。

どのように解決するのですか?

で行を削除するには Inf 次のようにするといいと思います。

df <- df[!is.infinite(rowSums(df)),]

または、同等に

df <- df[is.finite(rowSums(df)),]

2番目のオプション( is.finite() を含む行を削除し、否定を行わない。 NA の値で、まだ実行されていない場合。