【发布时间】:2013-09-26 22:13:28
【问题描述】:
我有一个样本列表,每个样本的长度都不同。我需要比较列表中所有样本的样本均值(使用 Mann-Whitney-Wilcoxon 检验)。当前代码如下:
wilcox.v = list() ##This creates the list of samples
for (i in df){
treat = list(i$treatment)
wilcox.v = c(wilcox.v,treat)
}
###This *should* iterate over all items in the list
wilcox = sapply(wilcox.v, function(i){ wilcox.test(as.numeric(wilcox.v[i,]), as.numeric(wilcox.v[-i,]), exact = FALSE)$p.value
})
我想让函数返回一个 p 值向量,以便更广泛的函数可以在必要时重新采样。
问题似乎在于需要将样本均值与列表中的所有其他样本均值进行比较。
我确信有一种简单的方法可以做到这一点(我认为这与正确调用索引有关),但我不确定!
【问题讨论】:
-
sapply会遍历wilcox.v的所有元素。wilcox.v的每个元素都传递给您的函数并传递给参数i。所以i将是wilcox.v的每个连续元素。您似乎已经编写了函数,就好像i只是一个整数索引。