簡體   English   中英

R中具有p值的2個數據幀的相關檢驗

[英]cor.test correlation for 2 data frames with p-value in R

我有2個數據幀,彼此不同,我需要對使用Rcor.test()函數的數據幀進行關聯。

我的數據框具有相同的列數,但行彼此不同。

例如,融化之后(使用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腳本進行分析,該腳本返回Spearman系數:

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

您沒有給出可復制的示例,但是我認為您的內部函數需要進行一些輕微的修改(例如),如下所示:

function(col2, col1) {
    cc <- cor.test(col2, col1, method = "spearman")
    cbind(cc$estimate,cc$p.value)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM