首页 > 解决方案 > R:复制样本的向量,而不仅仅是一个样本

问题描述

我想用来R做我对样本大小10所做的事情,对样本集做同样的事情

我有什么 我得到了下面R的复制夏皮罗测试正常性的代码here

sim = replicate(1000,shapiro.test(rnorm(10)))
## rejections go like, assuming an alpha of 0.05 :
table(sim["p.value",] < 0.05)

假设 alpha 为 0.05 ,拒绝的结果如下:

错误的 真的
948 52

我想要的是

而不是只对一个样本大小进行计数测试,10我希望它在一个样本向量上进行,比如 (10, 20,50, 100),结果如下:

. 错误的 真的
10 948 52
20 970 30
50 956 44
100 944 36

标签: rreplication

解决方案


使用循环 -sapply并将这些值传入rnorm

out <- t(sapply(c(10, 20, 50, 100), function(x) 
    table(replicate(1000, shapiro.test(rnorm(x)))["p.value",] < 0.05)))
row.names(out) <- c(10, 20, 50, 100)

-输出

out
    FALSE TRUE
10    953   47
20    942   58
50    960   40
100   951   49

推荐阅读