2014-10-14 3 views
2

Это может быть простой вопрос, но я не могу найти, как создавать пары значений из вектора последовательно, в котором каждая пара включает последнее значение и новое значение в матрице из значения с двумя столбцами. Пример нижеИзвлечение последовательных пар элементов из вектора и места в матрице

C<-c(1 , 20 , 44 , 62 , 64 , 89 , 91, 100) 

матрица например

newpairs 
    [,1] [,2] 
[1,] 1 20 
[2,] 20 44 
[3,] 44 64 
[4,] 64 89 
[5,] 89 91 
[6,] 91 100 

Так что, когда я пытаюсь матрицу она не работает, как последний элемент не repated с новым элементом

newpairs <- matrix(C, ncol=2, byrow=TRUE) 

newpairs 

    [,1] [,2] 
[1,] 1 20 
[2,] 44 62 
[3,] 64 89 
[4,] 91 100 

Я думаю, вы можете Подмножество но если значения C меняются, вам нужно изменить падение или сохранить подмножество. Я также пробовал функции, которые извлекают определенные приращения или могут извлекать каждый n-й элемент. Однако я хотел бы найти систематический способ создания первой примерной матрицы.

Любая помощь приветствуется

ответ

7

Это соответствует ваш желаемый результат:

cbind(C[-length(C)], C[-1]) 
    [,1] [,2] 
[1,] 1 20 
[2,] 20 44 
[3,] 44 62 
[4,] 62 64 
[5,] 64 89 
[6,] 89 91 
[7,] 91 100 
2

Как насчет:

## define input  
C <- c(1 , 20 , 44 , 62 , 64 , 89 , 91, 100) 
## replicate all but first and last elements 
Crep <- rep(C,c(1,rep(2,length(C)-2),1)) 
## create matrix 
matrix(Crep,ncol=2,byrow=TRUE) 
+0

Благодаря как, проще, чем я думал, что, создавая два вектора или уникального вектора с повторяющимися значениями середины и помещением их в матрицу. – Barnaby