2016-12-16 16 views
0

私はお互いに異なる2つのデータフレームを持っており、Rcor.test()関数を使用するデータフレームで相関を取る必要があります。2つのデータフレームのcor.testの相関がRの値である

私のデータフレームは同じ数の列を持ちますが、行はお互いに異なります。例えば

、(reshapeパッケージからmelt()関数を使用して)溶融した後、私のデータフレームは、次のようになり:

これらのデータフレームの各々は、84列と変化する行数を有する:

head(df1) 


ID variable value 
ENSG60 AE02_ID 7.408430 
ENSG53 AE02_ID 0.000000 
ENSG94 AE02_ID 2.556464 
ENSG49 AE02_ID 0.032384 
ENSG9 AE02_ID 0.000000 

head(df2)

ID variable value 
ENSG3 AE02_ID 0.000001 
ENSG1 AE02_ID 0.329180 
ENSG8 AE02_ID 0.000000 
ENSG10 AE02_ID 29.157761 
ENSG20 AE02_ID 0.633884 

私は、次のRスクリプトを使用

result <- apply(mat1, 2, function(col_mat1){ 
    apply(mat2, 2, function(col2, col1) { 
    cor.test(col2, col1, method = "spearman")$estimate # this returns the p-value of the cor.test 
    }, col1=col_mat1) 
}) 

として、私は上記の機能にp.valueを追加しようとしました:それはエラーメッセージを返すことだ

result <- apply(mat1, 2, function(col_mat1){ 
    apply(mat2, 2, function(col2, col1) { 
    cor.test(col2, col1, method = "spearman")cbind($estimate,$p.value) # this returns the p-value of the cor.test 
    }, col1=col_mat1) 
}) 

それはスピアマン係数を返し、私の分析のため。

ご意見やご協力があれば助かります。ありがとうございました。アウト希望はあなたが再現可能な例を与えられていないが、私は次のようにあなたの内側の関数は(例えば)少し修正する必要があると考え、このような何か、

df1  df2  Coefficient  P.value 
    ENSG60 ENSG3 0.1828591281 0.00546547 
    ENSG53 ENSG1 0.021038182 0.021038182 
    ENSG94 ENSG8 -0.0683044433 0.000657 
+0

は、このAです統計の質問やプログラミング/デバッグの質問? – Jon

+0

問題は純粋に構文的であり、このサイトでは話題にはなりません。 – AdamO

+0

@ジョン、それはデバッグに関する質問で、私が求めているものが得られていないので、私はフォーラムで尋ねたいと思います。あなたが私を少し案内することができたら、ちょっと大丈夫でしょうか。 – user1017373

答えて

1

です:

function(col2, col1) { 
    cc <- cor.test(col2, col1, method = "spearman") 
    cbind(cc$estimate,cc$p.value) 
} 
関連する問題