我用类似的包做了一个稀疏qr
分解"Matrix"
R
a <- Matrix(runif(20), nrow = 5, sparse = T)
a[3:5,] <- 0 #now **a** is a 5X4 matrix
b <- qr.R(qr(a), complete = T) #but now **b** is a 7X4 matrix!
有谁知道为什么?请注意,如果我保持a
密集,则不会出现错误(?)。
我假设您没有看到警告,否则您会提到它,对吗?
警告消息:在 qr.R(qr(a), complete = T) 中:qr.R(< sparse >) 可能因排列而与 qr.R(< dense >) 不同
现在,如果您要问这些排列是什么意思,那就另当别论了……
该help("sparseQR-class")
页面可能包含有关此问题的更多信息:
但是,由于矩阵 Q 不是唯一定义的,qr.qy 和 qr.qty 的结果不一定与相应密集矩阵计算的结果相匹配。
也许它是一样的qr.R
?
最后,在同一个帮助页面上进一步向下:
qr.R --- signature(qr = "sparseQR"):计算 QR 分解的上三角 R 矩阵。请注意,由于可能与经典 qr.R() 结果的排列不匹配,这当前会发出警告,您可以通过将 options() 设置为“Matrix.quiet.qr.R”或(更一般的)“Matrix .quiet” 为 TRUE。