问题标签 [hclust]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 在 R 中使用 hclust 进行加权观察频率聚类
我有一个包含 500K 观察值的大型矩阵,可以使用层次聚类进行聚类。由于体积大,我没有计算距离矩阵的计算能力。
为了克服这个问题,我选择聚合我的矩阵来合并那些相同的观察值,从而将我的矩阵减少到大约 10K 观察值。我有这个聚合矩阵中每一行的频率。我现在需要将此频率作为权重合并到我的层次聚类中。
数据是 500K 观测值的数值和分类变量的混合体,因此我使用 daisy 包来计算聚合数据集的 gower 差异。我想在聚合数据集的 stats 包中使用 hclust 但是我想考虑每个观察的频率。从 hclust 的帮助信息中,参数如下:
members 参数的信息是:、NULL 或长度为 d 的向量。请参阅“详细信息”部分。当您查看详细信息部分时,您会得到: If members != NULL
, thend
被认为是集群之间的相异矩阵,而不是单例和成员之间的相异矩阵,给出了每个集群的观察次数。这样,层次聚类算法可以“在树状图的中间开始”,例如,为了重建切割上方的树部分(参见示例)。仅对于有限数量的距离/链接组合,可以有效地计算集群之间的差异(即,没有 hclust 本身),最简单的一种是平方欧几里得距离和质心链接。在这种情况下,聚类之间的差异是聚类均值之间的平方欧几里得距离。
从上面的描述中,我不确定我是否可以将我的频率权重分配给成员参数,因为不清楚这是否是这个参数的目的。我想这样使用它:
哪里df$freq
是聚合矩阵中每一行的频率。因此,如果一行重复 10 次,则该值将是 10。
如果有人可以帮助我,那就太好了,
谢谢
r - hclust 和 ggplot r
我有一个文件,其值如下所示
我想要实现的是使用 hclust 和 dist 方法来查看数据的趋势,我试图基本上做一些问题中显示的事情,来自 Sandipan dey的 SO ps 回答
我无法理解,因为问题中没有显示数据,我想绘制的是
x: xaxis 我的样本名称 (s1,s2,s3,s4,s5)
y 轴 zscore 和
代表每个基因名的每一行
每个集群的 facet_wrap,我可以在其中看到哪个集群可以提供良好的清晰聚类或样本分离
编辑
我的代码版本
当我尝试这个
在具有 16gb ram R studio 的 Mac 上冻结
r - 带有可爱分组的 ANOSIM
我想做的是在一些组合数据中定义分组的 ANOSIM,以查看分组是否彼此显着不同,以与此示例代码类似的方式:
然而,在我自己的数据中,我在 bray-curtis 矩阵中拥有物种丰度,并且在创建 hclust() 图表并通过查看树状图并设置高度来直观地创建自己的分组之后。然后我可以通过 cutree() 获得这些可以叠加在 MDS 图等上的分组,但我想检查我创建的分组之间相似性的重要性 - 即分组是显着不同还是只是任意分组?
例如
然后我想使用 c1 定义的类别作为分组,在给出的示例代码中是管理因素,并通过 anosim() 测试它们的相似性以查看它们是否真的不同。
我很确定这只是我无能的编码问题....任何建议将不胜感激。
r - 'tree' 的 'height' 组件未排序 cutree 中的错误
我正在尝试进行一些分组并遇到此错误。
Evaluation error: the 'height' component of 'tree' is not sorted (increasingly).
我的输入是:
但是当我尝试剪切它时,它给了我一个错误:
但是如果我使用
一切正常。
我一直在寻找解决方案,但找不到。我应该怎么做,以防止这种情况发生并保持工作?
我还注意到,如果我有相同的距离矩阵,但是是手动生成的(所以集群中没有距离参数。
r - 如何基于 SIMPROF 绘制带有彩色/符号点的 nmd
嗨,所以我正在尝试绘制我的集合数据的 nmds,该集合数据位于 R 中的 bray-curtis 相异矩阵中。我已经能够应用 ordielipse()、ordihull(),甚至可以根据 cutree 创建的组因子更改颜色() 的 hclst()
例如,使用 vegan 包中的沙丘数据
甚至只是通过cutree为点着色
然而,我真正想做的是使用 SIMPROF 函数,使用包“clustsig”,然后根据重要的分组为点着色——这更像是一种技术编码语言——我相信有一种方法可以创建一个字符串因素,但我相信有更有效的方法来做到这一点
到目前为止,这是我的代码:
现在我只是不确定下一步如何使用 SIMPROF 定义的分组来绘制 nmds - 我如何使 SIMPROF 结果成为一个因子字符串,而无需自己亲自输入它?
提前致谢。
r - 使用base R在树状图中为分支着色的函数
我想R function
根据给定的树状图对象、指定的簇数和颜色向量为树状图中的分支着色。我想使用base R
而不是dendextend
.
使用此答案中的确切代码:https ://stackoverflow.com/a/18036096/7064628到类似问题:
在上面的代码中,您必须手动选择分支来重新着色它们。我想要一个函数来找到k
最高的分支并为它们(以及它们的所有子分支)改变颜色。到目前为止,我尝试迭代地搜索最高的子分支,但这似乎是不必要的困难。如果有一种方法可以提取所有分支的高度,找到k
最高点,然后更改edgePar
每个分支的高度,那就太棒了。
r - cutree 和 cluster 分支之间的分歧
我有一个数据集,其中包含一些属于 4 种不同基因型的小鼠的每日饮水量。我正在尝试编写一个脚本,以便使用层次聚类分析根据它们的摄水模式对这些动物进行分类,然后创建一个纵向图,绘制每个聚类在几天内的平均摄水量。
为此,我首先创建分层集群集群,如下所示:
然后我使用 cutree 函数来评估哪个动物属于哪个组,以绘制每组的平均饮水量。
问题是我从分层集群获得的数字与 cutree 函数分配的数字之间存在不一致。虽然集群正在从 1 到 4 对分支进行自下而上的排序,但 cutree 函数正在使用我不熟悉的其他一些排序参数。因此,聚类图中的标签和摄入图表中的标签不匹配。
我是编码的初学者,所以可以肯定我使用了太多的冗余行和循环,所以我的代码可以缩短,但如果你们能帮助我解决这个具体问题,我会很高兴。
簇:
进气图
r - R基于cutree标签从树状图中获取子树
我已经对一个大型数据集进行了聚类,并发现了 6 个我有兴趣进行更深入分析的聚类。
我找到了使用带有“ward.D”方法的 hclust 的集群,我想知道是否有办法从 hclust/dendrogram 对象中获取“子树”。
例如
我曾经cutree
获取数据集中每一行的标签。
我知道我可以通过以下方式获取每个相应集群(例如集群 1)的数据:
是否有任何简单的方法来获取由返回的每个相应标签的子树dendextend::cutree
?例如,假设我有兴趣获得
我知道我可以访问树状图的分支,执行类似的操作
但是我怎样才能得到与集群 1 相对应的子树呢?
我努力了
但这当然行不通。那么如何根据 cutree 返回的标签获取子树呢?