2016-10-06 3 views

ответ

1

Мы можем использовать

rep(1:5, times = 5) + rep(0:4, each = 5) 
# [1] 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 

или проще (как R будет перерабатывать 1:5 автоматически):

rep(0:4, each = 5) + 1:5 
# [1] 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 

Есть ли способ сделать это с помощью команды seq?

1:5 просто seq(1,5), а 0:4 является seq(0,4).


Ах, для тех, кто заинтересован в, мы можем также использовать outer:

as.numeric(outer(1:5, 0:4, "+")) 

Первоначальный вызов outer формирует эту матрицу:

#  [,1] [,2] [,3] [,4] [,5] 
#[1,] 1 2 3 4 5 
#[2,] 2 3 4 5 6 
#[3,] 3 4 5 6 7 
#[4,] 4 5 6 7 8 
#[5,] 5 6 7 8 9 

затем мы используем as.numeric для сгладить его.

-1

Это будет также сделать:

unlist(lapply(1:5, function(x) seq(x, 4+x, 1))) 

# [1] 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 
Смежные вопросы