需要 TRUE/FALSE 的缺失值:典型相关分析(cc CCA 包)

问题描述 投票:0回答:1

我正在尝试对两个不同的时空数据集进行典型相关分析。

它们的结构如下:2个具有相同维度的大矩阵[1:2310672,1:288],其中第一个指空间维度(x:y矩阵的线性化),第二个指时间(288个观察值) )。这两个矩阵包含缺失值。

这是我正在使用的代码:

cca <- cc(A_2d_chloa, A_2d_turb)

我遇到的错误:

Error in if (max(abs(Bmat - t(Bmat)))/max(abs(Bmat)) > 1e-10) stop("BMAT not symmetric.") : Missing value where TRUE/FALSE is needed

这个错误是否来自于我的数据集中有 NA 值,尽管函数描述说这个函数接受缺失值?

提前感谢您的帮助。

r geospatial canonical-link
1个回答
0
投票

第一个代码块显示

NA
值不会导致错误。

cc()
使用
geigen()
函数
,这就是错误的来源。尝试用最后两行代码中的第一个矩阵替换
X
,看看是否会重现错误。这可能会帮助您诊断问题。

library(CCA)

# Sample data works when inserting NA
data(nutrimouse)
X <- as.matrix(nutrimouse$gene[, 1:10])
Y <- as.matrix(nutrimouse$lipid)
X[1, "ACAT1"] <- NA
result <- cc(X, Y)

# Replace X with your first matrix and see if this recreates the error
Cxx <- var(X, na.rm = TRUE, use = "pairwise") + diag(0, ncol(X))
if (max(abs(Cxx - t(Cxx)))/max(abs(Cxx)) > 1e-10) stop("BMAT not symmetric.") else("okay")
#> [1] "okay"

创建于 2024-04-27,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.