2015-09-27 21 views
1

我试图重复采样两个向量,xy,100次,并在每个样本之后计算t检验。然后我想使用broom包将结果组合成一个数据帧。我在做这件事的尝试如下。不过,我设法做的是在相同的两个向量上进行100次t检验。将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))) 

回答

1

我们可以使用replicatemapply。我们复制samplen次'x'和'y',并做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)) 
相关问题