如何解决ggtree 2.4.2 错误:DataMask$new(.data, caller_env) 中的错误:缺少参数“caller_env”,没有默认值
我正在尝试使用 RevGadgets 1.0.0 和 ggtree 2.4.2 绘制在 RevBayes 中生成的祖先状态树。调用如下,所有变量都检出,包括 Nexus 格式的树文件,我可以在 figTree 等中打开。
pp=plot_ancestral_states(tree_file=tree_fn,include_start_states=T,summary_statistic="PieRange",state_labels=state_labels,state_colors=state_colors,tip_label_size=2.5,tip_label_offset=0.1,node_label_size=0,shoulder_label_size=0,show_posterior_legend=T,tip_pie_diameter=0.5,node_pie_diameter=2.0,pie_nudge_x=0.03,pie_nudge_y=0.16,alpha=1)
错误消息是“DataMask$new(.data,caller_env) 中的错误:缺少参数“caller_env”,没有默认值”
这似乎是一个 rlang 错误,但我没有找到解决它的方法。 RevGadgets 调用“plot_ancestral_states”的文档为零。
感谢您的帮助。
解决方法
结果是最新版本的 dplyr 有问题。从存档中删除 dplyr 1.0.6 并安装 1.0.5 解决了该问题。
,我遇到了完全相同的问题,但回滚到 1.0.4 版本的 Dplyr 并没有解决它。另外,我已经看到它在其他使用 1.0.6 的机器上运行(和我一样)所以我想知道您是否还知道其他任何问题?
干杯 GMD
这是我的 sessionInfo,以防万一。 R 版本 4.0.5 (2021-03-31) 平台:x86_64-w64-mingw32/x64(64位) 运行于:Windows 10 x64(内部版本 18363)
矩阵产品:默认
地区:
[1] LC_COLLATE=English_Australia.1252 LC_CTYPE=English_Australia.1252 LC_MONETARY=English_Australia.1252 LC_NUMERIC=C
[5] LC_TIME=English_Australia.1252
附加基础包: [1] stats 图形 grDevices utils datasets 方法基础
其他附加包: [1] ggtree_2.4.2
通过命名空间加载(且未附加):
[1] Rcpp_1.0.6 magrittr_2.0.1 tidyselect_1.1.1 aplot_0.0.6 munsell_0.5.0 colorspace_2.0-1 ape_5.5
[8]lattice_0.20-41 R6_2.5.0 rlang_0.4.11 fani_0.4.2 dplyr_1.0.6 patchwork_1.1.1 tools_4.0.5
[15] parallel_4.0.5 grid_4.0.5 gtable_0.3.0 nlme_3.1-152 utf8_1.2.1 ellipsis_0.3.2 lazyeval_0.2.2
[22] tibble_3.1.1lifecycle_1.0.0 crayon_1.4.1 treeio_1.14.4 tidyr_1.1.3 BiocManager_1.30.15 purrr_0.3.4
[29] ggplot2_3.3.3 vctrs_0.3.8 tidytree_0.3.3glue_1.4.2 compiler_4.0.5 pillar_1.6.1 rvcheck_0.1.8
[36] generics_0.1.0 scales_1.1.1 jsonlite_1.7.2 pkgconfig_2.0.3
问题已解决
开发者的解决方案如下:
还请通过 tidytree
更新 remotes::install_github("YuLab-SMU/tidytree")
。这是因为旧版本中未更新 mutate.tbl_tree
中的 tidytree
。
我还按照他的指示将 dplyr 从 1.0.6 回滚到 1.0.5。不确定 tidytree 的变化是否足够,我也没有勇气尝试。
,我遇到了同样的问题,首先尝试只更新 tidytree,但没有奏效。也不得不回到 dplyr 1.0.5。
另一种选择是从 GitHub remotes::install_github("YuLab-SMU/ggtree")
更新 ggtree,它应该适用于 dplyr 1.0.6
基于 Peter B 为那些以前不需要安装存档版本软件包的人(如我)提供的解决方案,这对我有用。
#Start a new R session
remove.packages("dplyr")
devtools::install_version("dplyr",version="1.0.5")
require(dplyr)
#Example to show ggtree is working
tmpFile=tempfile()
file<-download.file("https://4va.github.io/biodatasci/data/tree_newick.nwk",tmpFile)
tree<-read.tree(tmpFile)
ggtree::ggtree(tree)
安装 ggtree 的开发 Github 版本没有解决问题,但上面的代码可以。
,DataMask$new(.data,caller_env) 中的错误: 缺少参数“caller_env”,没有默认值
可以确认在 R、ggtree、dplyr 和 tidytree 都为最新版本时问题已修复:
- R 4.1.0
- ggtree 3.1.2.991
- dplyr 1.07
- 整洁树 0.3.4
我不得不将 R 更新到 4.1.0,因为上述包配置不适用于 4.0.3 或 4.0.5
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。