在R中随机选择多组“字符串”

时间:2015-03-16 16:10:52

标签: r random sample random-sample

所以基本上我想随机排序〜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而且被卡住了。 :(

我真的很感激任何帮助!

1 个答案:

答案 0 :(得分:0)

我认为这应该可以胜任。基本上只是随机化矢量然后为其分配一个组。您可以将其拆分为一个列表,但我认为最好将其保存在data.frame中。

```
ID<- sample(ID, length(ID), replace = FALSE)
ID<- data.frame(ID)
ID$groups<- ceiling(seq_along(ID$ID)/3)
```