首页 文章

做了很多相关性测试

提问于
浏览
0

我有这样的15个数字列(值是随机的,不是我的真实数据):

Val(numeric):      val.2:              Val.3   ....   Val.15  
1.698              1.689               5.478           5.68
4.98               0.65                69.47           4.78
0.123              3                   12 .698         6.98
-----------------------------------------------------------
0.047              65.98               123.47          1.547

我计算了每个变量之间的相关性:

val      val.2  ...  val.15                  
val       1        0.32         0.1256                  
val.2     0.9      1            0.125    
...
val.15    0.36    0.12          1

但我想在每列之间进行相关性测试(cor.test()) . 有没有办法自动完成,而不是做很多测试,如:
cor.test(df $ val,df $ val.2,method = 'spearman')
cor.test(df $ val,df $ val.3,method = 'spearman')
......等
cor.test(df $ val.14,df $ val.15,method = 'spearman')

2 回答

  • 1

    你可以试试

    library(Hmisc)
    rcorr(as.matrix(df), type='spearman')$P
    
  • 0

    只要你想在所有对(或其他组合)上做某事, combn 函数就是一种方法 . 它将创建对,并可选择在每对上运行一个函数:

    > combn(1:4, 2, FUN=function(x) cor.test(iris[,x[1]], iris[,x[2]])$p.value)
    [1] 1.518983e-01 0.000000e+00 0.000000e+00
    [4] 4.513314e-08 4.073229e-06 0.000000e+00
    > p.adjust(.Last.value)
    [1] 1.518983e-01 0.000000e+00 0.000000e+00
    [4] 1.353994e-07 8.146457e-06 0.000000e+00
    

相关问题