What does "argument to 'which' is not logical" mean in FactoMineR MCA?

VeilleData picture VeilleData · Dec 14, 2015 · Viewed 17.7k times · Source

I'm trying to run an MCA on a datatable using FactoMineR. It contains only 0/1 numerical columns, and its size is 200.000 * 20.

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

I get the following error :

Error in which(unlist(lapply(listModa, is.numeric))) : argument to 'which' is not logical

I didn't really know what to do with this error. Then I tried to turn every column to character, and everything worked. I thought it could be useful to someone else, and that maybe someone would be able to explain the error to me ;)

Cheers

Answer

marques picture marques · Oct 3, 2016

Are the classes of your variables character or factor?I was having this problem. My solution was to change al variables to factor.

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