我正在使用 R 的内置相关矩阵和层次聚类方法将每日销售数据分成 10 个集群。然后,我想按集群创建聚合的每日销售数据。例如,我已经创建了一个对象,但我很难只提取对象中簇号为 1cutree()
的列名。cutree
为简单起见,我将使用EuStockMarkets
数据集并将树分成 2 段;请记住,我在这里使用数千列,因此需要可扩展:
data=as.data.frame(EuStockMarkets)
corrMatrix<-cor(data)
dissimilarity<-round(((1-corrMatrix)/2), 3)
distSimilarity<-as.dist(dissimilarity)
hirearchicalCluster<-hclust(distSimilarity)
treecuts<-cutree(hirearchicalCluster, k=2)
现在,我卡住了。例如,我只想提取treecuts
簇号等于 1 的列名。但是,制作的对象cutree()
不是DataFrame,使得子设置变得困难。我尝试转换treecuts
为数据框,但 R 不会为行名称创建列,它所做的只是将数字强制转换为具有 name 的行treecuts
。
我想做以下操作:
....Code that converts treecuts into a data frame called "treeIDs" with the
columns "Index" and "Cluster"......
cluster1Columns<-colnames(treeIDs[Cluster==1, ])
cluster1DF<-data[ , (colnames(data) %in% cluster1Columns)]
rowSums(cluster1DF)
......瞧,我完成了。
想法/建议?