在R中随机选择多组"strings"
Randomly choosing multiple groups of "strings" in R
所以基本上我想随机排序 ~200 个唯一 ID "numbers"(由一个字母和一个数字组成的字符串,例如 x1、x2、y40、...)到多个 5 组而不复制和某些 ID "numbers" 未分配到组。
对于一个最小的工作示例,我创建了 32 个唯一 ID "numbers",我想将其分为 7 组,每组 3 个,"using" 最多 21 个唯一 ID "numbers" 和 11遗留唯一 ID "numbers"。
# 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 中删除该组的选定数字,然后必须 select 下一组 3 等等,直到我有7组3?因为这可能适用于小型数据集,但不适用于大型数据集。
PS:是的,我已经搜索过了,但没有找到任何适用的东西,我有点像 R newby,被卡住了。 :(
非常感谢任何帮助!
我认为这应该可以完成工作。基本上只是随机化向量,然后为其分配一个组。您可以将其拆分为一个列表,但我认为最好将其保持在 data.frame。
```
ID<- sample(ID, length(ID), replace = FALSE)
ID<- data.frame(ID)
ID$groups<- ceiling(seq_along(ID$ID)/3)
```
所以基本上我想随机排序 ~200 个唯一 ID "numbers"(由一个字母和一个数字组成的字符串,例如 x1、x2、y40、...)到多个 5 组而不复制和某些 ID "numbers" 未分配到组。
对于一个最小的工作示例,我创建了 32 个唯一 ID "numbers",我想将其分为 7 组,每组 3 个,"using" 最多 21 个唯一 ID "numbers" 和 11遗留唯一 ID "numbers"。
# 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 中删除该组的选定数字,然后必须 select 下一组 3 等等,直到我有7组3?因为这可能适用于小型数据集,但不适用于大型数据集。
PS:是的,我已经搜索过了,但没有找到任何适用的东西,我有点像 R newby,被卡住了。 :(
非常感谢任何帮助!
我认为这应该可以完成工作。基本上只是随机化向量,然后为其分配一个组。您可以将其拆分为一个列表,但我认为最好将其保持在 data.frame。
```
ID<- sample(ID, length(ID), replace = FALSE)
ID<- data.frame(ID)
ID$groups<- ceiling(seq_along(ID$ID)/3)
```