R在FactoMineR中编写MCA()错误消息

时间:2015-11-03 20:43:51

标签: r r-package

我正在使用R中FactoMineR软件包的MCA()函数对一组约160个变量进行多次对应分析,大约有2000个观察值。大约150个变量是连续的,所以我首先使用cut()函数将这些连续变量转换为分类变量,然后使用MCA()函数。

我的代码非常简单:

library(FactoMineR)

data<-read.csv('demographics.csv')

for (i in 9:length(data)){

   temp<-unlist(data[i],use.names=FALSE)

   data[i]<-cut(temp,breaks=5,labels=c('A','B','C','D','E'))
}

MC<-MCA(data,ncp=10,graph=TRUE)

运行代码后,收到以下错误消息。

Error in dimnames(res) <- list(attributes(tab)$row.names, listModa) : length of 'dimnames' [2] not equal to array extent

我想知道为什么会出现这种错误以及如何解决它。我的表中没有丢失的数据,所有变量都是分类的。

如果有人遇到类似的问题,并且愿意提供帮助,我会非常感激。非常感谢。

1 个答案:

答案 0 :(得分:6)

之前我遇到过这个错误,因为函数要求变量是因子(而我传递的数据并没有完全转换为因子)。与许多其他R函数不同,即使所有列都是分类的,这个函数也不会为您转换数据。

我不太确定您的数据是什么,但很可能一列或多列不是因子变量。如果您的第1列到第8列已经是因素,则它可能位于read.csv调用中;当您从csv中读取字符串变量时,它们将自动转换为因子,但数字变量则不会。