主坐标分析 (PCoA) 中的复特征值

问题描述

我正在分享一个与主坐标分析 (PCoA) 中的复杂特征值相关的问题。非常感谢任何帮助!

目标:在系统发育距离矩阵上执行 PCoA -> 在回归模型中包含排序轴以解释植物物种(n = 1013 种)之间的系统发育相关性。

输入数据:系统发育距离矩阵,通过对有根和时间校准的系统发育应用 cophenetic() 函数获得。结果是一个 1013 x 1013 的矩阵,主对角线为 0。输入矩阵是对称的(根据 isSymmetric())并且不包含复数(根据 any(is.complex())。也没有NA。请参阅以下部分物种的子集:

    structure(c(0,55.7063710000001,105.333883,237.6822,237.682199,261.495339,105.333886,237.682203,237.682202,261.495342,237.682201,261.49534,66.171369,261.495341,0),.Dim = c(6L,6L),.Dimnames = list(c("Cyrtomium_falcatum","Cyrtomium_fortunei","Nephrolepis_cordifolia","Pteris_cretica","Pteris_vittata","Azolla_filiculoides"),c("Cyrtomium_falcatum","Azolla_filiculoides")))

最小可重现示例:我创建了一个重现错误消息的距离矩阵子集。它是txt格式,你可以用read.table("you_path/distance.matrix.subset.txt",header = T,row.names = 1,sep = " ")在R中加载。下载它 here (GoogleDrive)。

问题错误消息表明在执行 PCoA 时产生了复杂的特征值(如果我正确理解错误)。我将 ape::pcoa()认设置一起使用(ape 5.4.1 版)。

Error in min(D.eig$values) : invalid 'type' (complex) of argument

对此错误消息 elsehwere 进行了一些讨论,但我还没有找到解决方案。

有趣的是,如果我使用 stats::cmdscale()stats 版本 3.6.3)执行 PCoA,我没有收到任何错误消息。此外,我最近对较小的一组物种 (n = 79) 执行了相同的程序,并且在使用 ape::pcoa() 时没有收到错误消息。

非常感谢您提供的任何帮助和/或见解!我是 Stack Overflow 的新手,所以请告诉我如何让问题更容易理解,或者是否需要其他信息。

干杯!

解决方法

我想我已经解决了这个问题——这是一个名为 center() 的内部函数深处的一个舍入错误,它使对称矩阵变为非对称矩阵——并提交了一个 Github 问题。

https://github.com/emmanuelparadis/ape/issues/17

相关问答

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