2017-04-12 405 views
0

我是R的初学者,所以我希望这不是太明显。我试图创建一个会重复数字的向量,但它有一个警告,我不能与rep():该函数必须重复向量x的第一个数字y次,然后才重复第二个数字y倍的情况,那么第三等,所以例如,使用rep我得到:在R中的向量中依次重复数字

> rep(1:3, 5) 
[1] 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 

但我想:

> 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 

我还是设法做的是创造,它返回这个特定的功能载体(1:3):

some.func <- function(x,y){ 
for(i in x){ 
    if(i == 1){ 
     a <- rep(i,y) 
    }else if(i == 2){ 
     b <- rep(i,y) 
    }else if(i == 3){ 
     c <- rep(i,y) 
     print(var <- c(a,b,c)) 
    } 
    } 
} 
> some.func(1:3, 5) 
[1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 

但是,只有当矢量不超过3时,这显然是有效的。现在我卡住了。任何帮助感谢!

+3

'代表(1:3,每个= 5)' –

+0

嗯,这是很明显的....谢谢。 – Lfppfs

回答

0

P·拉普安特的回答是:

rep(1:3, each=5)