我做了一个集群分析 - 如何将包含结果的列添加到原始数据中

时间:2013-02-18 16:14:52

标签: r cluster-analysis traminer

我使用OMTraMineR(最佳匹配)距离进行了群集病房分析。

R>library (cluster)
R>clusterward<- agnes (test.om,dis=TRUE, method="ward") # where test is my dataset

我选择了6个群集

R> cluster6<- cutree(clusterward, k=6)

我尝试在我的数据集中添加一个cloumn:

R> groups = cutree(clusterward, k=6)
R> result = cbind(clusterward, k=6, groups)

我收到以下错误消息:

Avis dans cbind(clusterward, k = 6, groups) :
    number of rows of result is not a multiple of vector length (arg 1)

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

问题是clusterward不是你的数据集,而是聚类的结果。假设您有一个包含所有数据(单个信息)的data.frame,名为“mydata”,那么您可以使用:

mydata <- cbind(mydata, groups)

或(如果您使用第一个命令)

mydata <- cbind(mydata, cluster6)

请注意,您应该在agnes命令中使用diss = TRUE(而不是dis = TRUE)。

希望这有帮助。

答案 1 :(得分:1)

k=6中的cbind看起来很奇怪,很可能不是您想要的。如果没有示例,只需提供建议,打印您想要cbind的每个元素,并检查这是否真的是您想要放置的内容。我想你会看到很快,这个命令中不应该k=6(如果这些部分匹配,我不确定clusterward中存储的是什么。)

据我了解,它不应该像cbind(test.om,groups)