web-dev-qa-db-ja.com

FactoMineR MCAで「論理的ではない」に対する議論はどういう意味ですか?

FactoMineRを使用してデータテーブルでMCAを実行しようとしています。 0/1の数値列のみが含まれ、サイズは200.000 * 20です。

require(FactoMineR)
result <- MCA(data[, colnames, with=F], ncp = 3)

次のエラーが発生します:

エラー(unlist(lapply(listModa、is.numeric))): 'への引数'は論理的ではありません

私はこのエラーをどうしたらいいのか本当にわかりませんでした。それから私はすべての列を文字に変えるを試みました、そしてすべてがうまくいきました。私はそれが他の誰かに役立つかもしれないと思いました、そして多分誰かが私にエラーを説明することができるでしょう;)

乾杯

10
VeilleData

それ以上の入力なしで判断するのは難しいですが、あなたができることは次のとおりです。

  • エラーが発生した関数を(traceback()を介して)見つけます。
  • ブレークポイントを設定してデバッグします。

    trace(tab.disjonctif, browser)
    

tab.disjonctifの名前を見つけるために、次の(オフライン)を行いました。

  • CRANミラーでパッケージが見つかりました GitHub上
  • 検索 エラーを発生させる特定の式
2
krlmlr

あなたの変数のクラスは文字または因子ですか?私はこの問題を抱えていました。私の解決策は、すべての変数を因数分解に変更することでした。

#my data.frame was "aux.da"
i=0
while(i < ncol(aux.da)){
  i=i+1  aux.da[,i] = as.factor(aux.da[,i])
}
3
marques

昨日Rを学び始めたばかりですが、MCAがcategorical data用であるためにエラーが発生するため、データを数値にすることはできません。次に、より正確には、MCAの前に「tableaudisjonctif」(申し訳ありませんが、英語の単語がわかりません:完全な選言三段論)が作成されます。したがって、FactomineRはこの関数を使用しています:

https://github.com/cran/FactoMineR/blob/master/R/tab.disjonctif.R

数値に一致するカテゴリ値(Y = 1、N = 0など)を探していると思います。

ほかの人のため ;注意:Rのカテゴリデータはfactorタイプに関連しているため、even if you have characters you could get this errorです。

1
Khaled