2016-04-08 38 views
1

我正在尋找R中可以進行排列的函數。例如,我有五個1十0這樣的載體:R中的數字排列位置

> status=c(rep(1,5),rep(0,10)) 
> status 
[1] 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 

現在,我想隨機置換這些數字的位置,但保持載體,以獲得相同數量的0和1新的序列號,例如要得到的東西是這樣的:

1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 

1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 

我發現功能樣本()可以幫助我們來樣,但1和0的數量不每個蒂姆都一樣即你知道我怎麼用R做這個?提前致謝。

回答

2

我們可以使用sample

sample(status) 
#[1] 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 
sample(status) 
#[1] 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 

如果我們用sample返回整個vector,它會做置換,並給每個獨特元素的頻數相同

colSums(replicate(5, sample(status))) 
#[1] 5 5 5 5 5 

即我們在每次抽樣中得到5個。所以,剩餘的0將是10.