2017-06-02 108 views
0

背景:

我通常使用gl()爲一組隨機變量生成「相等」數量的因子水平。例如,爲了生成60隨機變量2因子水平在x,我使用以下命令:如何在Base R中生成「不平衡」(不等)因子水平?

x = rnorm(n = 60) 
groups = gl(2, length(x)/2) ## My Factor Levels 

但是上面,不允許我產生,比如說,40因子水平在x第一40元素和20因子水平爲x(即,「不平衡」(不等)因子水平)中的最後20元素。

問題:

在基R,是有一個靈活的功能或產生「不平衡」(不相等)因子水平的策略?

+1

'as.factor(REP(1:2,每個= 40,length.out = length(x)))''可以完成40/20的情況 –

+0

@AdamSpannbauer,謝謝,所以沒有其他靈活的R函數可以用於此目的,對嗎? – rnorouzian

+0

想西蒙你用'rep'覆蓋了他的答案 –

回答

3

可以使用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