R:如何随机创建相等的变量块?

时间:2018-05-11 13:35:00

标签: r block sample

我有一个n = 20个变量(列数)的数据帧,分布在b = 5个块(每个块4个变量)上。 我想从5个变量块中创建p = 4 随机和大小相等的变量

我试过了:

sample (x = 1: p, size = n, replace = TRUE) 
[1] 1 1 1 1 1 1 1 1 1 2 2 2 3 3 3 4 4 4 4 4

预期结果的示例(每个块5个变量):

[1] 4 1 2 1 4 2 3 1 2 3 2 1 4 3 1 2 3 3 4 4 

1 个答案:

答案 0 :(得分:0)

在下面的评论中对此进行了讨论,这是一个解决方案:

创建一个看起来像你想要的矢量,然后使用sample通过对整个矢量进行采样而无需替换来对其进行随机排序:

p <- 4
b <- 5

sample(rep(1:p, b), size = p * b)

[1] 3 1 4 3 3 4 1 1 4 2 2 4 3 2 1 2 2 4 3 1