R:从小标题创建 treedata 或 phylo 对象时出错

问题描述

当我尝试将小标题转换为树(treedataphylo)对象时出错,即使小标题最初是由树生成的。见示例:

library(ape,quietly = TRUE,warn.conflicts = FALSE)
library(tidytree,warn.conflicts = FALSE)
library(treeio,warn.conflicts = FALSE)
#> treeio v1.14.4  For help: https://yulab-smu.top/treedata-book/

set.seed(2017)
a <- rtree(4) %>% as_tibble() %>% as.data.frame()
#> Warning: UnkNown or uninitialised column: `node`.
print(a)
#>   parent node branch.length label
#> 1      5    1   0.434905600    t4
#> 2      7    2   0.674331481    t1
#> 3      7    3   0.002020766    t3
#> 4      6    4   0.025093514    t2
#> 5      5    5            NA  <NA>
#> 6      5    6   0.472166386  <NA>
#> 7      6    7   0.273833123  <NA>

# ERROR ON BOTH
a %>% as.treedata()     #calls treeio:::as.treedata.data.frame which calls treeio:::as.phylo.tbl_df
#> Error in check_edgelist(x): Cannot find root. network is not a tree!
a %>% as.phylo()        #calls treeio:::as.phylo.data.frame which is equal to treeio:::as.phylo.tbl_df
#> Error in check_edgelist(x): Cannot find root. network is not a tree!

它要求 'unique(parents[!(parents %in% children)])' 返回一个非零向量, 但这与根节点本身的性质相反:

例如tidytree:::rootnode.tbl_tree 将根定义为具有 parent==node

的节点

reprex package (v1.0.0) 于 2021 年 6 月 4 日创建

会话信息
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 4.0.5 (2021-03-31)
#>  os       Ubuntu 20.04.2 LTS          
#>  system   x86_64,linux-gnu           
#>  ui       X11                         
#>  language (EN)                        
#>  collate  C.UTF-8                     
#>  ctype    C.UTF-8                     
#>  tz       Etc/UTC                     
#>  date     2021-06-04                  
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date       lib source        
#>  ape         * 5.5     2021-04-25 [1] CRAN (R 4.0.5)
#>  assertthat    0.2.1   2019-03-21 [2] CRAN (R 4.0.4)
#>  cli           2.3.1   2021-02-23 [2] CRAN (R 4.0.4)
#>  Crayon        1.4.1   2021-02-08 [2] CRAN (R 4.0.4)
#>  DBI           1.1.1   2021-01-15 [2] CRAN (R 4.0.4)
#>  digest        0.6.27  2020-10-24 [2] CRAN (R 4.0.4)
#>  dplyr         1.0.5   2021-03-05 [2] CRAN (R 4.0.4)
#>  ellipsis      0.3.1   2020-05-15 [2] CRAN (R 4.0.4)
#>  evaluate      0.14    2019-05-28 [2] CRAN (R 4.0.4)
#>  fansi         0.4.2   2021-01-15 [2] CRAN (R 4.0.4)
#>  fs            1.5.0   2020-07-31 [2] CRAN (R 4.0.4)
#>  generics      0.1.0   2020-10-31 [2] CRAN (R 4.0.4)
#>  glue          1.4.2   2020-08-27 [2] CRAN (R 4.0.4)
#>  highr         0.8     2019-03-20 [2] CRAN (R 4.0.4)
#>  htmltools     0.5.1.1 2021-01-22 [2] CRAN (R 4.0.4)
#>  jsonlite      1.7.2   2020-12-09 [2] CRAN (R 4.0.4)
#>  knitr         1.31    2021-01-27 [2] CRAN (R 4.0.4)
#>  lattice       0.20-41 2020-04-02 [4] CRAN (R 4.0.0)
#>  lazyeval      0.2.2   2019-03-15 [2] CRAN (R 4.0.4)
#>  lifecycle     1.0.0   2021-02-15 [2] CRAN (R 4.0.4)
#>  magrittr      2.0.1   2020-11-17 [2] CRAN (R 4.0.4)
#>  nlme          3.1-152 2021-02-04 [4] CRAN (R 4.0.3)
#>  pillar        1.5.1   2021-03-05 [2] CRAN (R 4.0.4)
#>  pkgconfig     2.0.3   2019-09-22 [2] CRAN (R 4.0.4)
#>  purrr         0.3.4   2020-04-17 [2] CRAN (R 4.0.4)
#>  R6            2.5.0   2020-10-28 [2] CRAN (R 4.0.4)
#>  Rcpp          1.0.6   2021-01-15 [2] CRAN (R 4.0.4)
#>  reprex        1.0.0   2021-01-27 [2] CRAN (R 4.0.4)
#>  rlang         0.4.10  2020-12-30 [2] CRAN (R 4.0.4)
#>  rmarkdown     2.7     2021-02-19 [2] CRAN (R 4.0.4)
#>  rstudioapi    0.13    2020-11-12 [2] CRAN (R 4.0.4)
#>  sessioninfo   1.1.1   2018-11-05 [2] CRAN (R 4.0.4)
#>  stringi       1.5.3   2020-09-09 [2] CRAN (R 4.0.4)
#>  stringr       1.4.0   2019-02-10 [2] CRAN (R 4.0.4)
#>  tibble        3.1.0   2021-02-25 [2] CRAN (R 4.0.4)
#>  tidyselect    1.1.0   2020-05-11 [2] CRAN (R 4.0.4)
#>  tidytree    * 0.3.4   2021-05-22 [1] CRAN (R 4.0.5)
#>  treeio      * 1.14.4  2021-04-26 [1] Bioconductor  
#>  utf8          1.2.1   2021-03-12 [2] CRAN (R 4.0.4)
#>  vctrs         0.3.7   2021-03-29 [2] CRAN (R 4.0.4)
#>  withr         2.4.1   2021-01-26 [2] CRAN (R 4.0.4)
#>  xfun          0.22    2021-03-11 [2] CRAN (R 4.0.4)
#>  yaml          2.2.1   2020-02-01 [2] CRAN (R 4.0.4)
#> 
#> [1] /home/edoardo/R/x86_64-pc-linux-gnu-library/4.0
#> [2] /usr/local/lib/R/site-library
#> [3] /usr/lib/R/site-library
#> [4] /usr/lib/R/library

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...