本人菜鸟一只
要做表达谱基因与基因之间的pearson相关系数
输入是表达谱矩阵为a 每一行是一个基因 有行标签即基因名 一共六个样本
A xx xx xx xx xx xx
B xx .. . . . .
C . .. .. .. ..
. ...
. ...
. ....
以下是程序和错误
> n<-length(a[,1])
> x<-matrix(nrow=n*n/2,ncol=3)
错误: 无法分配大小为2.0 Gb的矢量
此外: 警告信息:
1: In matrix(nrow = n * n/2, ncol = 3) :
Reached total allocation of 1535Mb: see help(memory.size)
2: In matrix(nrow = n * n/2, ncol = 3) :
Reached total allocation of 1535Mb: see help(memory.size)
3: In matrix(nrow = n * n/2, ncol = 3) :
Reached total allocation of 1535Mb: see help(memory.size)
4: In matrix(nrow = n * n/2, ncol = 3) :
Reached total allocation of 1535Mb: see help(memory.size)
> ####定义一个矩阵 用于储存结果
> k=1
> for(i in 1:n)
+ {
+ if(a[i,2]==a[i,3]&&a[i,3]==a[i,4]&&a[i,4]==a[i,5]&&a[i,5]==a[i,6])
+ {a<-a[-i,]}
+ }
错误: 下标出界
>
> ####如果所有向量都相等则删去这一行 因为标准差为0无法计算相关系数
> for(i in 1:(n-1))
+ {
+ for(j in (i+1):n)
+ {
+ if(cor(a[i,2:6],a[j,2:6])>=0.8)
+ {
+ x[k,3]=cor(a[i,2:6],a[j,2:6])
+ x[k,1]=a[i,1]
+ x[k,2]=a[j,1]
+ k=k+1
+
+ }
+ }
+ }
错误于x[k, 3] = cor(a[i, 2:6], a[j, 2:6]) : 矩阵里的下标数目不对
>