我试图将某些矩阵相乘并发生以下错误:
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
答案 0 :(得分:1)
您正在尝试计算没有反转矩阵的LU分解。因此,LAPACK
包(当您拨打solve
时R实际上正在运行的那个)正试图除以零。
问题的解决方案是,如果是原因,要么清理数据,要么找到另一种获取特征值的方法。