问题标签 [pvclust]
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中的层次聚类-'pvclust'问题
我做了一个可重现的例子,我遇到了 pvclust 的问题。我的目标是在层次聚类树状图中选择理想的聚类。我听说过“pvclust”,但不知道如何使用它。此外,如果有人有其他建议来确定理想的集群,那将非常有帮助。
提供了我的代码。
出现错误说明:
r - 在锁定的环境中重写一个函数
使用pvclust::pvclust
,我得到一个错误
solve.default(crossprod(X, X/vv)) 中的错误:Lapack 例程 dgesv:系统完全是奇异的:U[2,2] = 0 调用:... pvclust.merge -> lapply -> FUN -> msfit -> 解决 -> 解决.default 执行停止
即使是奇异矩阵我也不想停止分析crossprod(X, X/vv)
,所以我尝试插入一个if {...}
块pvclust::msfit
来检查是否crossprod(X, X/vv)
是奇异矩阵,matrixcalc::is.singular.matrix
如果是,则返回NA
并继续。
保存my.msfit.Rmsfit
后,其中 包含if(!is.singular.matrix(...)) {...}else{...}
原始内容pvclust::msfit
,
方法::insertSource('/myFuncDir/my.msfit.R',package="pvclust",functions='msfit')
但我在下面收到错误
分配错误(this,thisObj,envir = envwhere):无法更改“msfit”的锁定绑定的值此外:警告消息:在方法中::insertSource(文件名,包=“pvclust”,功能=“msfit”,:无法插入这些(在源代码中找不到):“msfit”
有什么解决办法吗?我应该要求pvclust
包的作者吗?
==下面是发帖后补充的==
评论中给出了使用 try/catch 语法的准确建议,但我认为它不会给我解决方案。
关于我糟糕的英语水平,我提供了一个玩具样本来说明情况。
因为那sum3
将是一个错误,所以fun.a(1,2,3,'Char')
返回error
。
但是,我想回来
列表 [sum1, sum2, NaN]
如果我使用tryCatch(...,error=expr)
, sum1 到 sum3( 实际上,solve(...)
in pvclust::msfit
) 应该被包装。但是,fun.a
( msfit
) 是锁定包( pvclust
) 的内部函数。
r - 有人可以解释 R 中 pvclust 函数的输出吗?
在 R 的pvclust
包中,有pvclust()
函数。在函数帮助文件中提供的示例中,有函数:
这应该打印出具有高 p 值的集群。这个函数的输出是:
我很难理解输出的含义,特别是因为我在聚类分析方面的技术背景非常有限。特别是,我不明白每个集群下名称向量的含义。有人可以为我解释一下吗?谢谢!
r - 将列表转换为R中的命名向量
我使用 R 上的 pvclust 包进行了集群分析。我使用命令“pvpick”提取了生成的集群组件,得到了一个包含 8 个集群的列表。
对于我的下一个分析,我需要从这个列表中创建一个“命名向量”,就像你使用集群包的“cuttree”函数时得到的那样,每个物种名称(即“sco.plu”)作为名称与向量中对应的簇号。看起来像这样:
但我真的很难找到一种方法来做到这一点,并再次感觉到它可能有一个非常简单和优雅的解决方案。
r - 将“病房”方法与 pvclust R 包一起使用时出错
我在尝试使用pvclust包进行集群分析时遇到了一些麻烦。
具体来说,我有一个由物种(行)和采样站(列)组成的数据矩阵。我想执行 CA 以便根据我的物种丰度(我之前已转换为 log(x+1))对我的采样站进行分组。
一旦充分准备好我的矩阵,我就尝试根据 pvclust 包运行 CA,使用 Ward 的聚类方法和 Bray-Curtis 作为距离索引。但是,每次我收到以下错误消息:
''hclust 中的错误(距离,方法 = method.hclust):无效的聚类方法''
然后我尝试使用另一种聚类方法执行相同的分析,我没有遇到任何问题。我还尝试使用vegan包中的 hclust 函数执行相同的分析,我也完全没有问题。分析运行没有任何问题。
为了更好地理解我的问题,我将显示我的部分矩阵和我用来执行分析的脚本:
其中 P1-P6 是我的采样站,最左边的行号是我的不同物种。我将这个示例矩阵表示为“平台”。
之后,我使用了以下代码行:
值得注意的是,我运行了前三个代码行,因为 bray-curtis 索引最初在 pvclust 包中不可用。因此,运行这些代码行允许我在 pvclust 函数中指定 bray-curtis 索引
有谁知道为什么它不适用于 pvclust 包?
任何帮助都感激不尽。
亲切的问候,
玛丽
similarity - 如何在 pvclust 中使用不同的距离方法(辛普森)
我正在尝试运行函数 pvclust,但使用 simpson 的不同之处而不是使用默认距离之一。我可以在 pvclust (method.dist) 中包含一个距离函数吗?我已经将我的辛普森相异 intex 作为 dist. 来自包 betapart 的对象,这就是我想在 pvclust 中使用的对象。
谢谢!
r - 使用“dendextend”在树状图中围绕指定标签绘制矩形
我目前正在构建一个树状图,我正在使用“dendextend”来调整它的外观。我已经能够做我想做的一切(标记叶子和突出显示我选择的集群的分支),除了在预定义的集群周围绘制矩形。
我的数据(可以来自此文件:Barra_IBS_example.matrix)与“pvclust”聚集在一起,因此“pvrect”将矩形绘制在正确的位置,但它会切割标签(见下图),所以我想重现它与“rect.dendrogram”,但是,我不知道如何告诉函数使用来自“pvclust”的聚类数据。
这是我正在使用的代码:
非常感谢,伊多
r - 在 pvclust 树状图中旋转叶子标签
我正在使用 R 中的 pvclust 包来执行引导层次聚类。然后将输出绘制为具有一些额外特征(不同的默认标题,节点处的 p 值)的 hclust 对象。我已经附上了一个链接到这里的一个情节。
这个情节正是我想要的,除了我需要水平显示叶子标签而不是垂直显示。据我所知,在plot.hclust 中没有旋转叶子标签的选项。我可以将 hclust 对象绘制为树状图
(即plot(as.dendrogram(example$hclust), leaflab="textlike")
代替plot(example)
)
但是叶子标签随后打印在我似乎无法删除的框中,并且 hclust 对象中节点的高度丢失了。我在这里附上了树状图的链接。
制作与标准输出尽可能相似plot.pvclust()
但带有水平叶子标签的绘图的最佳方法是什么?
python - 无法在 python3.6(Jupyter notebook)中使用 rpy2 导入 pvclust
我在 anaconda 中使用 Jupyter notebook 并尝试使用 pvclust 对我的数据执行层次聚类。我的代码:
但我得到了错误:
看来我需要先安装pvclust?但是我正在使用由 anaconda 启动的 jupyter notebook (python3.6),我很困惑如何预装这样的 R 包,然后从 rpy2 导入?
PS 有没有可以使用 p 值执行层次聚类的 Python 包?我所需要的只是使用一些可以引导我的数据并使用 p 值对数据进行聚类的函数。
非常感谢。