乘以矩阵时出错

时间:2015-04-15 03:45:06

标签: r

我试图将某些矩阵相乘并发生以下错误:

B <- 2*mcov
B <- cbind(B,c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1))
B <- cbind(B,t(mrend))
B <- rbind(B, c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0))
B <- rbind(B, ((1 + c(meanNovartis, meanRDS, meanRoche, meanEJ, meanHSBC, 
           meanBayer, meanUnilever, meanGSK, meanSanofi, meanAnheuser, 
           meanSiemens, meanLoreal, meanInnate, 
           meanBT,meanNestle,0,0)^12)-1))
B
c <- matrix(c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,(((1+mean(meanRDS))^12))-1),
            nrow=17, ncol=1)

当试图解决时:

 x <- solve(B)%*%c

出现此错误:

  

solve.default(B)中的错误:Lapack例程dgesv:系统完全是单数:U [17,17] = 0

1 个答案:

答案 0 :(得分:1)

您正在尝试计算没有反转矩阵的LU分解。因此,LAPACK包(当您拨打solve时R实际上正在运行的那个)正试图除以零。

问题的解决方案是,如果是原因,要么清理数据,要么找到另一种获取特征值的方法。