【发布时间】:2017-12-26 20:15:39
【问题描述】:
我为奇怪的语法道歉,我刚刚学习编程。我有 100 列和 5304 行的 df。我需要使用第 5 个数字列或参考列对最后 94 个数字列 (6:ncol(df)) 执行单独的两侧 ks.tests:
r<-df$rank.
我还想将 pvalues 存储在矩阵中。据我了解,我可以使用“for loop”或“apply”函数。我有一个简单的代码,它只输出一个统计摘要(看起来它正在覆盖结果):
for (i in 6:ncol(df))
y<-df[,i]
ks.test(r,y)->K
> K
Two-sample Kolmogorov-Smirnov test
data: r and y
D = 0.71983, p-value < 2.2e-16
alternative hypothesis: two-sided
我已经尝试了很多变体以及错误地使用 lapply。 关于为什么“K”不应该返回多个值或将输出分配给矩阵的任何见解?谢谢你。
编辑:样本数据集
probe set symbol zscore rank X1 X4 X13 X15 ....N (N=100)
22133-x_at SP110 4.73635 1 400 14 5 1000
. 2 5 430 56 150
. 3 24 78 23 9000
...N
(N=5304)
【问题讨论】:
-
您能否提供一个示例数据集。另外,请阅读 ?ks.test。 x 是“数据值的数字向量”。你的 r 是数字吗?
-
感谢您的回复。我添加了带有示例数据的编辑。是的,r 是一个数字向量,就像我试图调用函数的其他列一样。
-
仅供参考,ks.test(r,y) 旨在评估两个样本是否“来自相同的连续分布”。您的 r 是排名,因此我不确定您是否做得很好。
标签: r for-loop matrix lapply kolmogorov-smirnov