我试图学习如何使用R进行统计学分析,我想如何在一组两个样本中生成20 000(K个对)次,每个样本有50个点来自相同的正态分布(平均值为2.5)和方差9)?
到目前为止,我知道这就是我从正态发布中获得50分的原因:
rnorm(50,2.5,3)
但是如何生成一组两个样本的20 000次,以便我可以在以后对K对进行测试?
答案 0 :(得分:2)
x <- lapply(c(1:20000),
function(x){
lapply(c(1:2), function(y) rnorm(50,2.5,3))
})
这产生20000个配对样本,其中每个样本由来自N(2.5,3 ^ 2)分布的50个观察组成。请注意,x
是一个列表,其中每个槽都是两个长度为50的向量的列表。
要对样本进行t检验,您需要提取向量并将其用于t检验。
t.tests <- lapply(x, function(y) t.test(x=y[[2]], y=y[[1]]))
答案 1 :(得分:0)
的内容
yourresults <- replicate(20000,{yourtest(matrix(rnorm(100,2.5,3),nc=2),<...>)})
或
yourresults <- replicate(20000,{yourtest(rnorm(50,2.5,3),rnorm(50,2.5,3),<...>)})
其中yourtest
是您正在执行某项测试的函数,<...>
是您传递给yourtest
的其他参数。第一个是合适的,如果它需要一个有两列的矩阵,第二个是合适的,如果它需要两个向量。您可以以明显的方式将此方法适用于其他形式的输入 - 例如公式接口。