R 中无需替换的多个随机样本
Multiple random samples without replacement in R
我有一个大小为 M = 2630
的矢量,如何绘制大小为 M/4
的 4
个样本。
以下代码无效
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
我有一个大小为 M = 2630
的矢量,如何绘制大小为 M/4
的 4
个样本。
以下代码无效
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