首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以文本/表格格式显示TraMineR (R)树状图

以文本/表格格式显示TraMineR (R)树状图
EN

Stack Overflow用户
提问于 2012-08-13 17:50:43
回答 1查看 2.2K关注 0票数 7

我使用以下R代码生成基于TraMineR序列的标签的树状图(见附图):

代码语言:javascript
复制
library(TraMineR)
library(cluster)
clusterward <- agnes(twitter.om, diss = TRUE, method = "ward")
plot(clusterward, which.plots = 2, labels=colnames(twitter_sequences))

完整的代码(包括数据集)可以找到这里

虽然树状图信息丰富,但以文本和/或表格格式获取相同的信息是很方便的。如果我调用对象集群的任何一个方面(由agnes创建),比如"order“或"merge”,那么所有标记都使用数字,而不是从colnames(twitter_sequences)获得的名称。另外,我不知道如何输出在树状图中以图形方式表示的分组。

概括地说:如何获得文本/表格式的集群输出,并使用R正确显示标签,理想的情况下是traminer/集群库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-14 13:10:59

这个问题与cluster包有关。agnes.objectagnes返回的帮助页(参见http://stat.ethz.ch/R-manual/R-devel/library/cluster/html/agnes.object.html )指出,该对象包含一个“类似于orderorder.lab组件,但包含观察标签而不是观察编号。只有当原始观察被标记时,该组件才可用。”

twitter.om生成的不同矩阵(在您的情况下是TraMineR )目前并不将序列标签保留为行和列名。要获得order.lab组件,必须手动将序列标签指定为twitter.om矩阵的rownamescolnames。我在这里用mvad包提供的TraMineR数据来说明。

代码语言:javascript
复制
library(TraMineR)
data(mvad)
## attaching row labels 
rownames(mvad) <- paste("seq",rownames(mvad),sep="")
mvad.seq <- seqdef(mvad[17:86]) 
## computing the dissimilarity matrix
dist.om <- seqdist(mvad.seq, method = "OM", indel = 1, sm = "TRATE")
## assigning row and column labels 
rownames(dist.om) <- rownames(mvad) 
colnames(dist.om) <- rownames(mvad) 
dist.om[1:6,1:6]

## Hierarchical cluster with agnes library(cluster) 
cward <- agnes(dist.om, diss = TRUE, method = "ward")

## here we can see that cward has an order.lab component 
attributes(cward)

这是为了获得带有序列标签而不是数字的order。但现在我还不清楚您希望以文本/表的形式实现哪个集群结果。从树状图中,您决定要在什么地方切割它,即您想要的组数,并使用cutree (例如,cl.4 <- cutree(clusterward1, k = 4) )剪除树状图。结果cl.4是一个包含每个序列的集群成员的向量,您可以得到组1成员的列表,例如,使用rownames(mvad.seq)[cl.4==1]

或者,您可以使用identify方法(参见?identify.hclust)以交互方式从绘图中选择组,但需要将参数作为as.hclust(cward)传递。下面是示例的代码

代码语言:javascript
复制
## plot the dendrogram
plot(cward, which.plot = 2, labels=FALSE)

## and select the groups manually from the plot
x <- identify(as.hclust(cward)) ## Terminate with second mouse button

## number of groups selected
length(x)
## list of members of the first group
x[[1]] 

希望这能有所帮助。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11959811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档