Мы можем использовать head
и tail
, чтобы игнорировать последний и первый элемент соответственно.
data.frame(a = head(vl, -1), b = tail(vl, -1))
# a b
#1 1 2
#2 2 3
#3 3 4
#4 4 5
РЕДАКТИРОВАТЬ
Если данные должны быть отсортированы, мы можем использовать apply
по строкам для их сортировки.
vl <- c(2,5,3,1,6,4)
t(apply(data.frame(a = head(vl, -1), b = tail(vl, -1)), 1, sort))
# [,1] [,2]
#[1,] 2 5
#[2,] 3 5
#[3,] 1 3
#[4,] 1 6
#[5,] 4 6