2016-11-11 10 views
0

klaRパッケージでNaive Bayesを実行しているときにこのエラーが発生しました。ファクタレベルとゼロ分散

レプリケートするためにデータを共有したいと思いますが、私はそれを行う際にいくつかの制約があり、何が起こっているのか分からないので自分自身を再作成するデータセットを作成できません。私はこれを読んでいる誰かがこのエラーに遭遇して克服したことを期待しています。ここで

は誤りです:

Error in if (any(temp)) stop("Zero variances for at least one class in variables: ", : 
     missing value where TRUE/FALSE needed 

私はすでに、この上のオンラインいくつかの記事を見つけました: herehere

を、私は私が私の内に1つのまたはゼロのインスタンスを持っているいくつかのレベルを持って集めることができるものから、データ。

問題が見つかりません。私はこれを試みた:

sapply(df, function(x) table(x)) 

任意のテーブルは、ゼロまたは1つのインスタンスを示したが、約400ダミー変数とIは、任意に見ることができない返さかどうかを確認するために - すべてが私は、0又は1因子レベルの少なくともいくつかのインスタンスを有します見る。

Rに問題の原因となっているレベルを強調表示させることはできますか?私は犯人かもしれないレベルを見つけることができないので、私の行動の次のコースがわからない。あなたがanyNA(temp)またはany(is.na(temp))にそれを修正することができ

if (NA) { 
    print("ERROR") 
} 

+0

ゼロ分散でも同じ数字を使用できますが、複数回使用できますか?これは役に立ちますか? – drmariod

+1

あなたのコードまたは機能コードからそのエラーが発生していますか?どちらの場合でも、 'which(is.na(temp))'は問題を見つけるのに役立ちます。 –

+0

@ sebastian-cこれは関数コードから来ているので、変数tempにアクセスする方法がわかりません。これは、Niave BayesのKlaRパッケージに基づいたこのステップモデル< - NaiveBayes(target〜。、data = dataplay)から来ます –

答えて

1

問題がテストされている状態である、あなたがエラーを再現することができます。

実際にエラーが分散メッセージにある場合は、sapply(df, function(x){length(table(x)) == 1}でテストできます。

+0

答えに感謝します。実際には、変数tempはパッケージ内からの謎の変数です、私はそれを自分で作成したことはありません。 TRUEまたはFALSEのリストを返すように提案したように、sapply(df、function(x){length(table(x))== 1}を試してみました。 TRUE "、IND))とすべての値がFALSEなので、私のすべてのレベルに複数の値があるように見えるので、なぜrがこのエラーをスローしているのかわからない –

+0

あなたのデータで何をしても問題は解決しません。あなたのデータのバリエーションに関係なく、テストが実行されます。パッケージメンテナーに問題を提起してください。オープンで、間違いを訂正することができます。 – Llopis