要运行Canonical对应分析(cca包ade4),我需要一个正定方差矩阵.(理论上总是如此)但是:
matrix(c(2,59,4,7,10,0,7,0,0,0,475,18714,4070,97,298,0,1,0,17,7,4,1,4,18,36),nrow=5)
> a
[,1] [,2] [,3] [,4] [,5]
[1,] 2 0 475 0 4
[2,] 59 7 18714 1 1
[3,] 4 0 4070 0 4
[4,] 7 0 97 17 18
[5,] 10 0 298 7 36
> eigen(var(a))
$values
[1] 6.380066e+07 1.973658e+02 3.551492e+01 1.033096e+01
[5] -1.377693e-09
Run Code Online (Sandbox Code Playgroud)
最后本征值是-1.377693e-09,其是<0但理论框架值为> 0
如果本征值中的一个是我不能运行功能<0
我真的不知道如何解决这个问题而不改变函数cca()的代码
感谢帮助
假设你有一个向量列表:
L = list()
L[[1]]= c(2,34,6,7,3)
L[[2]]= c(3,4,6,8,1)
names(L[[1]])=c("A","B","C","D","E")
names(L[[2]])=c("A","R","C","D","F")
L
## [[1]]
## A B C D E
## 2 34 6 7 3
##
## [[2]]
## A R C D F
## 3 4 6 8 1
Run Code Online (Sandbox Code Playgroud)
我想用每个元素的名称对2个向量求和...结果:
A B C D E F R
5 34 12 15 3 1 4
Run Code Online (Sandbox Code Playgroud)
谢谢