使用 r 将因子变量随机分配到不同的组中
randomly allocating factor variables into different groups using r
我有一个包含 9 个因子变量的列表:item <- c("a","b","c","d","e","f","g","h","i")
。我想将 9 个因子变量中的每一个随机分配给 3 个组。
我试过这个脚本,但它可能需要很多工作:
gp1 <- sample(item,3,replace=F)
> gp1
[1] "b" "h" "g"
我也尝试了 cut 函数,但变量必须是数字:
gp <- cut(item, breaks = 3)
Error in cut.default(item, breaks = 3) : 'x' must be numeric
预期输出应如下所示,但变量随机分配给每个组:
grp1 grp1 grp3
d b i
c e h
a g f
感谢您的帮助!
只需对项目进行抽样并将其放入 matrix
(如果您愿意,也可以将其转换为 data.frame
):
matrix(sample(item), ncol = 3)
## [,1] [,2] [,3]
## [1,] "b" "d" "a"
## [2,] "f" "i" "e"
## [3,] "h" "g" "c"
如果项目不会拆分成相等的长度,您可以考虑 split
,其中拆分变量基于您想要的分组数量。
例如:
item <- item[-c(1, 2)]
split(item, sample(rep(1:3, length.out = length(item))))
## $`1`
## [1] "c" "e" "i"
##
## $`2`
## [1] "f" "g"
##
## $`3`
## [1] "d" "h"
##
我有一个包含 9 个因子变量的列表:item <- c("a","b","c","d","e","f","g","h","i")
。我想将 9 个因子变量中的每一个随机分配给 3 个组。
我试过这个脚本,但它可能需要很多工作:
gp1 <- sample(item,3,replace=F)
> gp1
[1] "b" "h" "g"
我也尝试了 cut 函数,但变量必须是数字:
gp <- cut(item, breaks = 3)
Error in cut.default(item, breaks = 3) : 'x' must be numeric
预期输出应如下所示,但变量随机分配给每个组:
grp1 grp1 grp3
d b i
c e h
a g f
感谢您的帮助!
只需对项目进行抽样并将其放入 matrix
(如果您愿意,也可以将其转换为 data.frame
):
matrix(sample(item), ncol = 3)
## [,1] [,2] [,3]
## [1,] "b" "d" "a"
## [2,] "f" "i" "e"
## [3,] "h" "g" "c"
如果项目不会拆分成相等的长度,您可以考虑 split
,其中拆分变量基于您想要的分组数量。
例如:
item <- item[-c(1, 2)]
split(item, sample(rep(1:3, length.out = length(item))))
## $`1`
## [1] "c" "e" "i"
##
## $`2`
## [1] "f" "g"
##
## $`3`
## [1] "d" "h"
##