R相关诊断矩阵逐行不同

时间:2015-05-21 06:16:38

标签: r

这是我的第一篇文章,如果这是一个非常愚蠢的问题,我很抱歉。我无法解决它,似乎更好地要求你的智慧,而不是继续撞击R.

我有两个带数值的数据框,其中一些是NA。行和列名称是相同的,我需要获得它们之间每个匹配行对的相关性(即cor(df1 [1,],df2 [1,]),cor(df1 [2,],df [2,] )....等等。 所以我使用了相关矩阵的诊断:

>df1=read.delim(file1,sep="\t",header=T)
>df2=read.delim(file2,sep="\t",header=T)
> identical(colnames(df1),colnames(df2))
[1] TRUE
> identical(rownames(df1),rownames(df2))
[1] TRUE
> Cor_diag=diag(cor(t(df1),t(df2),use="complete.obs",method = "spearman"))

然后我使用循环来制作每个匹配行对的散点图,并在循环内以数字格式计算数据上的相同相关性。

> Cor_test=c()
> for (i in 1:146){
  a=as.numeric(df1[i,])
  b=as.numeric(df2[i,])
  c=cor(a,b,use="complete.obs",method = "spearman")
  Cor_test=c(Cor_test,c)
}

我得到了不同的结果,例如:

> Cor_test[51]
[1] 0.2588515
> Cor_diag[51]
 Glycerol 
0.5190624 

我不应该得到相同的结果吗?如果没有,哪一个是我需要的实际? 提前感谢您的帮助!

PS:我试图附上所有值的散点图(它们都不匹配),但由于我是新用户,我不能......

编辑 :谢谢,我更正了帖子。这是代码,图表和文件的https://www.dropbox.com/sh/vvnmhie0u5sro0m/AAB7AhsxE2lPWRC5IB68Ezjda?dl=0

的dropboxlink

0 个答案:

没有答案