如何使plot.cophylo忽略缺失值NA?

问题描述

我想绘制一个cophylo对象,但是其中一个分支的值缺失,因此由于这个原因,cophylo无法正确绘制。

如何更改值或绘制没有分支长度的树?

解决方法

我无法重现该示例,并且cophylo()函数似乎可以很好地处理丢失的数据。

    library(phytools)
    #> Loading required package: ape
    #> Loading required package: maps
    set.seed(12345)
    tr1<-pbtree(n=22,tip.label=c(1:22))
    tr2<-pbtree(n=10,tip.label=c(1:10))
    obj<-cophylo(tr1,tr2)
    #> Rotating nodes to optimize matching...
    #> Done.
    plot(obj)

修改

问题在于缺少分支长度。首先,这对我来说似乎很可疑,因为缺少分支长度似乎没有道理。但是,该问题现在可以重现。也许您的NA值实际上是0?

    # Now with missing value --> Indeed it doesn't plot
    tr1$edge.length[2] <- NA
    obj<-cophylo(tr1,tr2)
    #> Rotating nodes to optimize matching...
    #> Done.
    plot(obj)

    # Replace NA value with 0? (I am not sure if this makes sense)
    tr1$edge.length[2] <- 0
    obj<-cophylo(tr1,tr2)
    #> Rotating nodes to optimize matching...
    #> Done.
    plot(obj)

编辑2

问题在于读取Newick文件。特别是,OP在不允许的名称中使用了字符(例如':')。

reprex package(v0.3.0)于2020-10-26创建

相关问答

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