数据框

时间:2017-04-11 14:02:25

标签: r

我有数据框

            name a   b   c   d   e   f
1       220-volt 1   8  12  17  22   8
2     aliexpress 7 133 317 372 358 349
3        bonprix 0   3  14  13  21  11
4       citilink 1  20  40  31  29  30
5            dns 1  16  37  34  39  38
6           ebay 3  32  65  50  55  58
7       eldorado 0  19  76  44  42  56
8        kupivip 0   8  17  24  11  18
9       labirint 0  15  30  34  36  32
10        lamoda 3  25  66  73  68  55

我尝试建立mca情节。 我使用FactoMineR并使用代码

library(FactoMineR)
df <- read.table("info.csv", header = TRUE, sep=';')
row.names(df) = df$name
df = df[,-1]
res.mca <- MCA(df)

但它返回

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

如何避免此错误?

1 个答案:

答案 0 :(得分:1)

我下载了代码并重现了您的data.frame(请使用dput或其他可重现的示例)并得到相同的错误。

当你?MCA时,你会发现x必须是: a data frame with n rows (individuals) and p columns (categorical variables)

将列更改为函数运行的因子后。

试试这个: df[] <- lapply(df, factor)

提示:在读取数据时,使用row.names = 1将第一列设置为data.frame的行名。 df <- read.table("info.csv", header = T, sep = ";", row.names = 1)