1

嗨,所以我正在尝试绘制我的集合数据的 nmds,该集合数据位于 R 中的 bray-curtis 相异矩阵中。我已经能够应用 ordielipse()、ordihull(),甚至可以根据 cutree 创建的组因子更改颜色() 的 hclst()

例如,使用 vegan 包中的沙丘数据

data(dune)
Dune.dis <- vegdist(Dune, method = "bray)
Dune.mds <- metaMDS(Dune, distance = "bray", k=2)

#hierarchical cluster
clua <- hclust(Dune.dis, "average")
plot(clua, hang = -1)
# set groupings
rect.hclust(clua, 4)
grp <- cutree(clua, 4)

#plot mds
plot(Dune.mds, display = "sites", type = "text", cex = 1.5)

#show groupings
ordielipse(Dune.mds, group = grp, border =1, col ="red", lwd = 3)

甚至只是通过cutree为点着色

colvec <- c("red2", "cyan", "deeppink3", "green3")
colvec[grp]
plot(Dune.mds, display = "sites", type = "text", cex = 1.5) #or use type = "points"
points(P4.mds, col = colvec[c2], bg =colvec[c2], pch=21)

然而,我真正想做的是使用 SIMPROF 函数,使用包“clustsig”,然后根据重要的分组为点着色——这更像是一种技术编码语言——我相信有一种方法可以创建一个字符串因素,但我相信有更有效的方法来做到这一点

到目前为止,这是我的代码:

simp <- simprof(Dune.dis, num.expected = 1000, num.simulated = 999, method.cluster = "average", method.distance = "braycurtis", alpha = 0.05, sample.orientation = "row")
#plot dendrogram    
simprof.plot(simp, plot = TRUE)

现在我只是不确定下一步如何使用 SIMPROF 定义的分组来绘制 nmds - 我如何使 SIMPROF 结果成为一个因子字符串,而无需自己亲自输入它?

提前致谢。

4

1 回答 1

1

您写道,您知道如何hclust使用cutree. 然后阅读clustsig::simprof. 这表示在其结果对象中simprof返回一个hclust对象。它还返回numgroups建议的簇数。现在,您已经拥有了所有需要使用的cutree信息hclust。如果你的simprof结果被称为simp,用于cutree(simp$hclust, simp$numgroups)提取与结果对应的整数向量clustsig::simprof,并将其用于颜色。

我从未使用过simprofclustersig,但我从它的文档中收集了所有这些信息。

于 2017-10-27T15:47:43.213 回答