运行MCA时出现aggregate.data.frame错误是什么原因?

问题描述 投票:0回答:1

我正在尝试在 R 中使用 FactoMineR 在以下数据集上运行 MCA

(MCA(widedata.emf.df)
,但我得到了

aggregate.data.frame(as.data.frame(x), ...)
中的错误:参数必须具有相同的长度”。

知道什么可能会导致这种情况吗?这是str。

str(widedata.emf.df)
'data.frame':   196 obs. of  34 variables:
 $ ID              : int  1 2 3 4 5 6 7 8 9 10 ...
 $ age             : num  27 37 20 26 34 33 44 27 26 33 ...
 $ gender          : Factor w/ 3 levels "female","male",..: 1 2 2 2 2 3 1 1 2 2 ...
 $ education       : Factor w/ 3 levels "bac-uni","mast-phd-uni",..: 1 1 3 3 2 2 3 2 1 2 ...
 $ subj.knowl.quant: Factor w/ 3 levels "Q1","Q2","Q3": 1 2 1 3 3 1 1 1 3 2 ...
 $ obj.knowl.quant : Factor w/ 3 levels "Q1","Q2","Q3": 2 2 3 1 3 1 1 1 3 1 ...
 $ electric        : Factor w/ 2 levels "0","1": 2 2 1 2 1 2 2 1 1 2 ...
 $ antenna         : Factor w/ 2 levels "0","1": 1 2 1 1 1 1 1 1 1 1 ...
 $ signal          : Factor w/ 2 levels "0","1": 1 2 1 1 1 1 1 1 1 1 ...

还有更多因素看起来像此代码末尾的三个因素(电、天线、信号),但它们都具有相同的结构(二进制编码),因此为了节省篇幅,我删除了它们。 数据集没有 NA。

我在网上看到这是一个常见的 R 错误,因为没有正确指定变量。但是我不明白是什么导致了这里。这是回溯输出。

traceback()
5: stop("arguments must have same length")
4: aggregate.data.frame(as.data.frame(x), ...)
3: aggregate.default(res.mca$var$contrib/100, by = list(factor(variable)), 
       FUN = sum)
2: aggregate(res.mca$var$contrib/100, by = list(factor(variable)), 
       FUN = sum)
1: MCA(widedata.emf.df)```
r dataframe aggregate factominer mca
1个回答
0
投票

该错误通常意味着您尝试聚合的向量(此处为

res.mca$var$contrib/100
)或分组变量(
factor(variable)
)以意外的方式更改了大小。根据我的经验,这通常是因为上游过程导致一个或另一个向量为空。

FactoMineR::MCA
看起来不像是一个简单的函数(或者至少我不够聪明,无法立即发现问题),所以我会从 GitHub 克隆只读存储库,在
 中的该行之前添加一个 
browser()
 MCA
,构建并重新安装,然后手动检查元素以查看该行的哪一部分导致了问题,并从那里向后工作。

© www.soinside.com 2019 - 2024. All rights reserved.