Создание повторяющейся последовательности нулей и единиц с неравномерными «разрывами» между - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь создать последовательность, состоящую из 1 и 0, используя Rstudio. Мой желаемый результат - последовательность, которая сначала имеет пять 1, затем шесть 0, затем четыре 1, затем шесть 0. Затем все это должно повторяться до конца данного вектора.

Результат должен быть таким:

1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 .. ...

Надеюсь, у кого-то есть хорошее решение, и извините, если у меня есть грамматические ошибки

Best, HB

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Вы можете использовать Map.

unlist(Map(function(x, ...) c(rep(x, ...), rep(0, 6)), 1, times=length(v):1))
# [1] 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0

Вместо length(v):1 вы также можете использовать rev(seq(v)), но это медленнее.


Данные

v <- c("Vector", "of", "specific", "length", "five")
0 голосов
/ 17 марта 2020
rep(c(rep(1,5),rep(0,6),rep(1,4),rep(0,6)),n)

повторение вашего паттерна n раз.

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