gpt4 book ai didi

r - 无法使用 ggtree 绘制 hclust 对象

转载 作者:行者123 更新时间:2023-12-04 10:19:34 24 4
gpt4 key购买 nike

我正在尝试从 hclust 绘制树状图对象 ggtree但我不断收到相同的错误消息:

Error: `data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class hclust

我一直在广泛寻找解决方案,但没有找到。此外,我了解到 ggtree does support hclust对象,这让我更加困惑。来自 here :

The ggtree package supports most of the hierarchical clustering objects defined in the R community, including hclust and dendrogram as well as agnes, diana and twins that defined in the cluster package.



我从上面的链接中借用了一个可重现的例子:
hc <- hclust(dist(mtcars))
p <- ggtree(hc, linetype='dashed')

这再次给了我上述错误。如果我使用 rlang::last_error()为了获得一些上下文,我得到:
<error/rlang_error>
`data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class hclust
Backtrace:
1. ggtree::ggtree(hc, linetype = "dashed")
3. ggplot2:::ggplot.default(...)
5. ggplot2:::fortify.default(data, ...)

如果我使用 rlang::last_trace() 来获取更多信息:
<error/rlang_error>
`data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class hclust
Backtrace:
x
1. \-ggtree::ggtree(hc, linetype = "dashed")
2. +-ggplot2::ggplot(...)
3. \-ggplot2:::ggplot.default(...)
4. +-ggplot2::fortify(data, ...)
5. \-ggplot2:::fortify.default(data, ...)

但我真的能看出哪里出了问题......

最佳答案

我已经设法解决了我的问题。如果将来对其他人有帮助,我会发布它。

显然,我运行的是旧版本的 ggtree我重新安装时没有正确更新 ggtree来自 Bioconductor,我不知道为什么。无论如何,我尝试通过显式设置 version 来重新安装它。安装调用中的参数:

BiocManager::install("ggtree", version = "3.10")

然后我可以成功运行我的可重现示例:
hc <- hclust(dist(mtcars))
p <- ggtree(hc, linetype='dashed')

enter image description here

请注意,作为以前的解决方法,我设法绘制了 hcluster对象 ggtree通过将其转换为 phylo对象与 as.phylo()来自 ape 的函数包裹:
hc <- hclust(dist(mtcars))
hc <- ape::as.phylo(hc)
p <- ggtree(hc, linetype='dashed')

关于r - 无法使用 ggtree 绘制 hclust 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60922705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com