R中的相关表面

时间:2016-05-30 22:53:38

标签: r correlation algebra surface pearson

这是我解释问题的第三次尝试。希望这次我能说得对,这很难解释。

我有 90x19矩阵,其中90行中的每一行都是在特定波长上的19个测量系列。 90个波长从400到700.然后我有一个长度 19x1向量

我想创建一个矩阵,其中每个单元格显示每个波长组合之和(对于矩阵的所有19个值)和19x1向量之间的Pearson相关系数。

绘制此表面看起来与此完全相同

enter image description here

如果您需要更多信息或更好的解释,请与我们联系。真的需要一些帮助! :)

贝斯茨

载体如下:

int arrayTwo[5][7]= {
{1, 5, 8, 0, 0, 0, 0},
{2, 3, 8, 7, 7, 0, 0},
{3, 4, 8, 2, 9, 0, 0},
{4, 8, 7, 1, 4, 0, 0},
{5, 7, 6, 8, 3, 0, 0} };

数据框标题如下:

v<-c(116, 100, 148, 132, 81, 136, 145, 116, 87, 126, 62, 124, 129, 
108, 127, 134, 142, 99, 132)

1 个答案:

答案 0 :(得分:1)

我模拟了数据(没有相关性),但看看这是否是你想要的:

nr=90
data<-data.frame(matrix(runif(nr*19,2,15),nrow=nr,ncol=19))
row.names(data)<-round(seq(400,700, length.out = nrow(data)),4)

cm=matrix(NA,nrow(data),nrow(data))
for (i in 1:nrow(data))
  for(j in i:nrow(data))cm[j,i]<- cor(apply(data[c(j,i),],2,sum),v)

colnames(cm)<-row.names(cm)<-round(as.numeric(row.names(data)),0)

#Build the plot    
library(lattice)
library(reshape)

cmd<-cbind(var=as.numeric(row.names(data)),data.frame(cm))
cmd<-cbind(melt(cmd, id=c("var")),var2=rep(as.numeric(row.names(data)),each=nrow(data)))

levelplot(value~var*var2,data=cmd,  
          col.regions=colorRampPalette(c("blue","green", "red")),
          at=seq(-1,1,0.1),
          xlab="x", ylab="x", main="")

enter image description here