【发布时间】:2015-03-16 16:10:51
【问题描述】:
所以基本上我想随机排序〜200个唯一ID“数字”(由一个字母和一个数字组成的字符串,例如x1,x2,y40,...)成多组5个没有复制和一些ID“号码”没有被分配到一个组。
对于一个最小的工作示例,我创建了 32 个唯一 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 新手并且被卡住了。 :(
非常感谢任何帮助!
【问题讨论】:
-
可能是
val <- sample(ID, 21, replace=FALSE);split(val,as.numeric(gl(length(val), 3, length(val)))) -
完美运行!谢谢!
标签: r random sample random-sample