【发布时间】:2021-04-12 15:10:23
【问题描述】:
我正在分享一个与主坐标分析 (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, 55.7063710000001, 0, 105.333886, 237.682203, 237.682202,
261.495342, 105.333883, 105.333886, 0, 237.682201, 237.6822,
261.49534, 237.6822, 237.682203, 237.682201, 0, 66.171369, 261.495341,
237.682199, 237.682202, 237.6822, 66.171369, 0, 261.49534, 261.495339,
261.495342, 261.49534, 261.495341, 261.49534, 0), .Dim = c(6L,
6L), .Dimnames = list(c("Cyrtomium_falcatum", "Cyrtomium_fortunei",
"Nephrolepis_cordifolia", "Pteris_cretica", "Pteris_vittata",
"Azolla_filiculoides"), c("Cyrtomium_falcatum", "Cyrtomium_fortunei",
"Nephrolepis_cordifolia", "Pteris_cretica", "Pteris_vittata",
"Azolla_filiculoides")))
最小可重现示例:我创建了一个距离矩阵的子集来重现错误消息。它是 txt 格式的,你可以在 R 中使用read.table("you_path/distance.matrix.subset.txt", header = T, row.names = 1, sep = " ") 加载。下载它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 的新手,所以请不要犹豫,告诉我如何使问题更易于理解,或者是否需要更多信息。
干杯!
【问题讨论】:
-
如果没有minimal reproducible example,将很难弄清楚/解决这个问题...
-
嗨!我可以使用大小为 600 x 600 的矩阵重现错误,但这仍然是一个相当大的数据集。关于如何共享如此大的数据集有什么建议吗?
-
嗨!我添加了一个最小可重现示例,请参阅编辑后的帖子。非常感谢!
标签: r pca eigenvalue phylogeny ape