Сгруппируйте вектор в режиме катания - PullRequest
0 голосов
/ 05 мая 2020

У меня есть несколько лет длиной N. Например,

yearVec <- 1980:2019

Я хочу сгруппировать годы так, чтобы в каждой группе было 4 года, которые переходят

group1 1980:1983
group2 1981:1984
group3 1982:1985
.
.
.
groupN 2016:2019

Желательно в списке как показано ниже

[[1]]
[1] 1980, 1981, 1982, 1983

[[2]]
[1] 1981, 1982, 1983, 1984

[[3]]
[1] 1982, 1983, 1984, 1985

[[4]]
[1] 1983, 1984, 1985, 1986

[[5]]
[1] 1984, 1985, 1986, 1987

1 Ответ

0 голосов
/ 05 мая 2020

Использование lapply:

lapply(yearVec, function(x) x:(x + 4))[seq(length(yearVec) - 4)]
[[1]]
[1] 1980 1981 1982 1983 1984

[[2]]
[1] 1981 1982 1983 1984 1985

[[3]]
[1] 1982 1983 1984 1985 1986

[[4]]
[1] 1983 1984 1985 1986 1987

...etc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...