2

我已经制作了一个HCPC对象,并希望返回一个观察列表以及它们属于哪些集群。我找不到执行此操作的命令;有人知道吗?

仅供参考,这是我的工作:

file <- read.csv("file", header=TRUE) 
library(FactoMineR) 
res.mca = MCA(file, graph=FALSE) 
# manually cut tree according to inertia gain 
res.hcpc = HCPC(res.mca, nb.clust=0) 

编辑:一个可重现的例子:

library(FactoMineR)
data(tea)
res.mca  <- MCA(tea, quanti.sup = 19, quali.sup = 20:36)
res.hcpc <- HCPC(res.mca, nb.clust = 5)
4

2 回答 2

2

输出$data.clust给出了一个包含输入数据的数据框和一个包含个人所属集群的列(最后一个)。

library(FactoMineR)
data(tea)
res.mca  <- MCA(tea, quanti.sup = 19, quali.sup = 20:36)
res.hcpc <- HCPC(res.mca, nb.clust = 5)
res.hcpc$data.clust

请注意,如果您希望个体与输入数据集中的顺序相同,则应使用order=FALSEHCPC 中的参数:

res.hcpc <- HCPC(res.mca, nb.clust = 5, order=FALSE)
res.hcpc$data.clust
于 2014-04-09T15:29:48.507 回答
1

虽然这篇文章是 3 年前写的,但我的回答可能对读者有所帮助。我只是在寻找与使用 HCPC 进行异常值检测相同的问题的解决方案,这就是我得到的想法:我根据字段“cluster”从 hcpc() 发出的数据帧 $data.clust 中提取了一个子集. 异常值<-子集(DHCPC$data.clust,clust==4)

我在这里找到了答案:如何根据涉及字段的条件提取数据帧的子集?

于 2016-08-05T23:23:34.250 回答