这是我解释问题的第三次尝试。希望这次我能说得对,这很难解释。
我有 90x19矩阵,其中90行中的每一行都是在特定波长上的19个测量系列。 90个波长从400到700.然后我有一个长度 19x1向量。
我想创建一个矩阵,其中每个单元格显示每个波长组合之和(对于矩阵的所有19个值)和19x1向量之间的Pearson相关系数。
绘制此表面看起来与此完全相同
如果您需要更多信息或更好的解释,请与我们联系。真的需要一些帮助! :)
贝斯茨
载体如下:
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)
答案 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="")