1

我试图重复对两个向量进行采样100 次,xy在每个样本后计算一个 t 检验。然后我想使用broom包将结果组合到一个数据框中。我的尝试如下。然而,我所做的只是对相同的两个向量进行 100 次 t 检验。

library(plyr); library(broom)

x <- rnorm(10000, 3, 3)
y <- rnorm(10000, 5, 3)


x_sample <- sample(x, size = 20, replace = FALSE)
y_sample <- sample(y, size = 20, replace = FALSE)

ldply(1:100, function(x) tidy(t.test(x_sample, y_sample)))
4

1 回答 1

1

我们可以使用replicatewith mapply。我们复制“x”和“y”的sampleforn时间,并t.test为相应的list元素使用mapply然后tidy输出。

n <- 100
mapply(function(x,y) tidy(t.test(x,y)), 
       replicate(n, sample(x, size=20, replace=FALSE), simplify=FALSE), 
       replicate(n, sample(y, size=20, replace=FALSE), simplify=FALSE))
于 2015-09-27T17:03:29.913 回答