所以基本上我想随机排序〜200个唯一ID“数字”(由字母和数字组成的字符串,例如x1,x2,y40,...)到5个不包含复制的组中,并且有一些ID“号码“没有被分配到一个小组。
对于一个最小的工作示例,我创建了32个uniquie ID“数字”,我想将其分为7组3,“使用”最多21个唯一ID“数字”,剩下11个唯一ID“数字”
# creating 32 unique IDs
ID = c("y6","x1","x3", "x4", "x5","x12","x7", "x8", "x9","z6", "x10",
"y1","x11","z3","y2","y3", "y4", "y5", "y7", "y8", "y9", "y10",
"x13","z1","x6","z2", "z4", "z5", "z7", "z8", "z9","x2")
# and this would be how I create the first group of 3 unique ID "numbers"
sample(ID, 3, replace = FALSE, prob = NULL)
# OUTPUT [1] "x3" "x6" "y8"
到目前为止一直很好,但有没有办法做到这一点,而不必从ID中删除该组的选定数字,然后必须选择下一组3,依此类推,直到我有7组3?因为这可能适用于小型数据集,但不适用于大型数据集。
PS:是的我已经搜索过,但没有发现任何适用的内容,而且我有点像R newby而且被卡住了。 :(我真的很感激任何帮助!
答案 0 :(得分:0)
我认为这应该可以胜任。基本上只是随机化矢量然后为其分配一个组。您可以将其拆分为一个列表,但我认为最好将其保存在data.frame中。
```
ID<- sample(ID, length(ID), replace = FALSE)
ID<- data.frame(ID)
ID$groups<- ceiling(seq_along(ID$ID)/3)
```