我有一个矩阵,我想分别计算每列的Kolmogorov-Smirnov检验。
让我们说我的矩阵如下
Name A Name B Name C Name D
1007_s -0.2815 1007_s_ -0.2032 1007_s_at -0.2539 1007_s_at 0.0410
1053_at -0.0113 1053_at 0.0285 1053_at -0.0675 1053_at 0.0048
117_at -0.0448 117_at -0.1360 117_at -0.2189 117_at 0.0637
121_at -0.0810 121_at 0.1412 121_at 0.0464 121_at -0.0180
1255_g 0.0486 1255_g -0.0239 1255_g_at 0.0753 1255_g_at -0.0670
1294_at -0.1090 1294_at -0.1266 1294_at -0.3023 1294_at 0.0101
1316_at -0.0389 1316_at 0.0915 1316_at -0.1352 1316_at 0.1189
1320_at 0.0147 1320_at -0.0064 1320_at 0.0090 1320_at -0.0411
1405_i_ 0.0000 1405_i_ 0.2178 1405_i_at -0.3024 1405_i_at 0.2265
1431_at 0.0318 1431_a 0.0556 1431_at -0.0434 1431_at -0.0180
答案 0 :(得分:2)
如果您只需要统计数据和p值:
f <- function(x) unlist(ks.test(x,"punif")[1:2])
apply(x[,seq(1,7,by=2)],2,f)
这是输出:
A B C D
statistic.D 9.514000e-01 7.82200e-01 9.247000e-01 7.811000e-01
p.value 1.471046e-13 5.48744e-07 1.172162e-11 1.003735e-05
Warning message:
In ks.test(x, "punif") :
ties should not be present for the Kolmogorov-Smirnov test
将"punif"
替换为您需要的任何cdf(例如标准法线"pnorm"
)。
如果您需要在列表中进行整个测试,只需省略[1:2]
和unlist
。