Создать список числовых последовательностей из элементов вектора в R - PullRequest
3 голосов
/ 25 марта 2020

У меня есть вектор цифр c следующим образом:

x <- c(1, 10, 11, 15, 16, 21, 22, 26, 27, 31,
       32, 36, 37, 41, 42, 46, 47, 51, 52, 56)

Я хочу создать список последовательностей чисел c, который проходит между первым и вторым элементом, третьим и четвертым элементом, пятым и шестой элемент и т. д.

Ожидаемый результат - следующий список:

[[1]]
[1] 1  2  3  4  5  6  7  8  9 10

[[2]]
[1] 11 12 13 14 15

[[3]]
[1] 16 17 18 19 20 21

[[4]]
[1] 22 23 24 25 26

[[5]]
[1] 27 28 29 30 31

[[6]]
[1] 32 33 34 35 36

[[7]]
[1] 37 38 39 40 41

[[8]]
[1] 42 43 44 45 46

[[9]]
[1] 47 48 49 50 51

[[10]]
[1] 52 53 54 55 56

Я бы предпочел решение в базе R.

Ответы [ 2 ]

6 голосов
/ 25 марта 2020

Применить seq к нечетным и четным позициям x:

Map(seq, x[c(TRUE, FALSE)], x[c(FALSE, TRUE)])

Это можно записать еще более компактно, например:

Map(seq, x[!0:1], x[!1:0])
1 голос
/ 25 марта 2020

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

library(purrr)
map2(x[c(TRUE, FALSE)], x[c(FALSE, TRUE)], `:`)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...