我有数据框
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
如何避免此错误?
答案 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)