R 中无需替换的多个随机样本

Multiple random samples without replacement in R

我有一个大小为 M = 2630 的矢量,如何绘制大小为 M/44 个样本。 以下代码无效

M <- c(1:2630)
mysample <- split(sample(M), 1:(length(M)/4))

由于(length(M)/4)不是整数,所以我想制作三个大小相同的样本,第四个将具有其余的单位。三个样本的大小可以是 657,第四个可以是 659

感谢任何帮助

这是使用单独索引向量的简单方法 idx:

n <- length(M)
set.seed(1)
idx <- sample(rep(1:4, each = ceiling(n /4))[1:n])

M1 <- M[idx == 1]
M2 <- M[idx == 2]
M3 <- M[idx == 3]
M1 <- M[idx == 4]

或者您使用split函数:

split(M, idx)

请注意,我使用 set.seed 设置了随机种子以使结果可重现。

您可以使用 table 检查 idx 的值:

table(idx)
idx
  1   2   3   4 
658 658 658 656