如何在 Base 中生成 "Unbalanced"(不等)因子水平?
How to generate "Unbalanced" (unequal) factor levels in Base?
背景:
我通常使用 gl()
为一组随机变量生成“相等”数量的因子水平。例如,要为 x
中的 60
个随机变量生成 2
因子水平,我使用以下内容:
x = rnorm(n = 60)
groups = gl( 2, length(x)/2 ) ## My Factor Levels
但在上面,不允许我为 x
中的第一个 40
元素生成 40
因子水平,以及 20
因子水平x
中的最后 20
个元素(即 “不平衡”(不相等)因子水平)。
问题:
在基础 R 中, 是否有灵活的函数或策略来产生“不平衡”(不平等)因子水平?
您可以将 rep
与矢量值 times
参数一起使用:
x <- factor( rep(1:3, times=c(5,10,2)) )
x
这给出:
[1] 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
Levels: 1 2 3
背景:
我通常使用 gl()
为一组随机变量生成“相等”数量的因子水平。例如,要为 x
中的 60
个随机变量生成 2
因子水平,我使用以下内容:
x = rnorm(n = 60)
groups = gl( 2, length(x)/2 ) ## My Factor Levels
但在上面,不允许我为 x
中的第一个 40
元素生成 40
因子水平,以及 20
因子水平x
中的最后 20
个元素(即 “不平衡”(不相等)因子水平)。
问题:
在基础 R 中, 是否有灵活的函数或策略来产生“不平衡”(不平等)因子水平?
您可以将 rep
与矢量值 times
参数一起使用:
x <- factor( rep(1:3, times=c(5,10,2)) )
x
这给出:
[1] 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
Levels: 1 2 3