小编Jam*_*ton的帖子

将数据按 R 中的最小和最大大小分组

我想将一个值向量(其中一些是重复的)随机分配给较少数量的组,以便为​​每个组分配至少两个且不超过四个值,并且不将相同的值分配给同一组。

示例数据:

values <- c(2499,2499,2522,2522,2522,2522,2648,2648,2652,2652,2670,2670,2689,2689,2690,2690,2693,2693,2700,2700,2706,2706,2714,2714,2730,2730,2738,2738,2740,2740,2765,2765,2768,2768,2773,2773,2783,2783,2794,2794,2798,2798,2807,2807,2812,2812,2831,2831,2831,2835,2835,2836,2836,2836,2844,2844,2844,2846,2846,2846,2883,2883,2964,2964)

groups <- 1:26
Run Code Online (Sandbox Code Playgroud)

我试过:

split(values, sample(groups, length(values), repl = TRUE))
Run Code Online (Sandbox Code Playgroud)

这很接近我想要的。但有时这会导致只为一个组分配一个值,或者超过四个值。有时,相同的值(重复项之一)会分配给同一组。

所需的输出将所有值随机分布在组中,以便每组中的所有值都是唯一的(无重复),并且每组中最少有两个值,最多有四个值。

algorithm split r vector unique

6
推荐指数
1
解决办法
122
查看次数

标签 统计

algorithm ×1

r ×1

split ×1

unique ×1

vector ×1