2011-06-21 49 views
45

這是一個非常基本的問題,但它讓我很煩,所以我在問。R中重複值的序列

我需要重複的數字序列,即1 1 ... 1 2 2 ... 2 3 3 ... 3等,我實現了,這是

nyear<-20 
    names<-c(rep(1,nyear),rep(2,nyear),rep(3,nyear),rep(4,nyear), 
      rep(5,nyear),rep(6,nyear),rep(7,nyear),rep(8,nyear)) 

其工作方式,但笨拙,顯然不能很好地擴展。我如何按順序重複N次整數M次?我嘗試嵌套seq()和rep(),但那並不完全符合我的要求。我明顯可以編寫一個for循環來做這件事,但這似乎也很笨拙 - 應該有一種內在的方式來做到這一點!

回答

94

你錯過了each=參數rep()

R> n <- 3 
R> rep(1:5, each=n) 
[1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 
R> 

所以你的例子可以用一個簡單的

R> rep(1:8, each=20) 
完成