我有两个数据帧,它们彼此不同,我需要对那些在R中使用R函数的数据帧进行关联。
我的数据帧有相同的列数,但行之间是不同的。
例如,在熔化(使用来自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脚本进行分析,其中它返回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发布于 2016-12-17 15:35:52
您还没有给出一个可重复的例子,但我认为您的内部功能需要稍加修改(例如)如下所示:
function(col2, col1) {
cc <- cor.test(col2, col1, method = "spearman")
cbind(cc$estimate,cc$p.value)
}https://stackoverflow.com/questions/41190932
复制相似问题