R:如何随机创建一个相等的变量块?
R: How to create a equal blocks of variables randomly?
我有一个包含 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
感谢您的帮助!
在下面的评论中讨论了这个问题,这是一个解决方案:
创建一个看起来像你想要的向量,然后使用 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
你可以试试:
sample(x = rep(1:p,n/p), size = n, replace = FALSE)
我有一个包含 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
感谢您的帮助!
在下面的评论中讨论了这个问题,这是一个解决方案:
创建一个看起来像你想要的向量,然后使用 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
你可以试试:
sample(x = rep(1:p,n/p), size = n, replace = FALSE)