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()和代表(),但没有完全做我想要的。 我明显可以写一个for循环来做这件事,但是这也看起来很笨拙 – 应该有一个内在的方法来做到这一点!

您错过了rep()each=参数:

 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)