2016-05-30 5 views
1

これは私の問題を説明するための3番目の試みです。私はこの時間を正しく得ることができると願って、説明するのは難しい問題です。Rの相関面は

私は、90x19マトリックスを持っています.90行のそれぞれは、特定の波長で一連の19の測定​​値です。 90波長は400から700になります。次に、長さは19x1ベクトルです。

各セルの波長の組み合わせの合計(マトリックスの19の値すべて)と19x1ベクトルのピアソン相関係数が表示されます。この表面をプロット

は、まさにこの

enter image description here

のように見えますが、より多くの情報や、より良い説明が必要な場合は私に知らせてください。本当にここでいくつかの助けが必要です! :)

カテゴリーで探す

ベクトルは以下の通りである:

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

とデータフレームヘッダは、以下である:

data<-structure(list(`1` = c(2, 2, 2, 2), `2` = c(1, 1, 1, 1), `3` = c(2, 
2, 2, 2), `4` = c(2, 2, 2, 3), `5` = c(13, 14, 14, 15), `6` = c(2, 
2, 2, 2), `7` = c(2, 2, 2, 2), `8` = c(0, 0, 0, 0), `9` = c(5, 
5, 5, 5), `10` = c(0, 0, 0, 0), `11` = c(114, 119, 122, 125), 
    `12` = c(8, 8, 8, 8), `13` = c(7, 7, 7, 8), `14` = c(10, 
    10, 10, 10), `15` = c(12, 12, 12, 12), `16` = c(6, 6, 6, 
    6), `17` = c(4, 4, 4, 4), `18` = c(17, 18, 18, 19), `19` = c(13, 
    14, 14, 14)), .Names = c("1", "2", "3", "4", "5", "6", "7", 
"8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", 
"19"), row.names = c("402.37700182806", "405.70862540288", "409.04076825642", 
"412.37342090064"), class = "data.frame") 
+0

サンプルデータを使用して[再生可能なサンプル](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を作成する必要がありますそれはあなたを助けるのが簡単です。 – MrFlick

+1

小さな行列とベクトルでプロセスを例証する必要があります。私は、この説明は例がなければ成功しないだろうと予測する。 –

+0

皆さん、アドバイスをいただきありがとうございます。私はベクトルとデータフレームのヘッダを貼り付けましたが、基本的には各行合計の相関値をプロットしたいと思います。例えばcor((row1 + row2)&v) – Emiliano

答えて

1

Iは(相関なし)データをシミュレートし、しかし、これがあなたの望むものかどうかを確認してください:

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

+0

それは人を動かした!どうもありがとう!私が学ぶことがたくさんある... – Emiliano

関連する問題