我想要将一组值(其中某些是重复的)随机分配到较少数量的组中,每个组至少分配两个值,但不超过四个值,并且同一个值不能被分配到同一个组。
示例数据:
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
我试过了。
split(values, sample(groups, length(values), repl = TRUE))
这接近我想要的。但有时候这会导致只有一个值被分配给一个组,或者超过四个值。而且有时候相同的值(其中一个重复项)会被分配到同一组中。
期望的输出是将所有的值随机分布到各个组中,以确保每个组中的值都是唯一的(没有重复项),并且每个组中的值最少为两个,最多为四个。