我不是高级R用户。我主要用它来进行矩阵代数计算。我有一个大矩阵(9400乘9400; 675.1 MB),我很想反转。我试过“解决”功能和“chol2inv”,我得到“错误......”'必须是一个复杂的矩阵“。我还尝试使用MASS包中的“ginv”函数,我收到错误消息“svd(X)中的错误:'x'中的无限或缺失值”。 我确定我的矩阵没有null(全零)列或行。我查了一下: Remove columns with zero values from a dataframe我得到了相同的矩阵。我没有使用Determine the number of NA values in a column进行测试,也没有NA值。我的矩阵是数字和方形矩阵(“is.numeric”和“is.matrix”回答为TRUE,“dim”9400x9400)。当使用来自matrixcalc包的“is.singular.matrix”时,错误消息再次是determinant.matrix中的错误(x,logarithm = TRUE,...): 'a'必须是复杂的矩阵。因此,我不知道为什么R不能计算反演。拜托,你知道我怎么能解决我的问题吗?非常感谢
答案 0 :(得分:0)
问题出在无限期。 R将0/0转换为无限,但我没有考虑它,因为错误消息有点过于模糊。
Matrix[is.infinite(Matrix)] <- 0
解决了我的问题。