2016-12-16 63 views
0

我有2个数据帧,它们彼此不同,我需要对使用R中的cor.test()函数的数据帧进行关联。2个数据帧的相关性在p中有2个数据帧

我的数据帧具有相同的列数,但行是彼此不同的。

例如,熔化(用melt()函数从reshape包)后,我的数据帧看起来如下:

每个数据帧具有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

这是一个统计问题或编程/调试问题? – Jon

+0

这个问题纯粹是句法问题,对于这个网站而言是无关紧要的。 – AdamO

+0

@Jon,它是一个调试问题,因为我没有得到我所要求的,我想在论坛上提问。如果你能指导我一点点就好了 – user1017373

回答

1

您还没有给出一个可重复的例子,但我觉得你的内部函数需要按照如下方式略(例如)修改:

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