Вычисление вектора 0 и 1 с длинами на основе наблюдений в другом векторе - PullRequest
0 голосов
/ 20 апреля 2020

Допустим, у нас есть такой фрейм данных:

Length <- floor(runif(25, min = 25, max = 1000))
ObservationID <- c(rep("20200321WT3", 25))
DF <- cbind(ObservationID, Length)
DF <- as.data.frame(DF)

Я хотел бы использовать наблюдения в Length для создания вектора, состоящего из 0 и 1. Этот новый вектор будет иметь число 0, равное первому значению Length, затем число 1, равное второму значению Length, затем число 0, равное третьему значению Length, и так далее, чередуясь так. Или, может быть, использовать наблюдения в Length для создания списка векторов 0 и 1, а затем связать эти векторы вместе в большой вектор? Не уверен, как это сделать, и не могу найти такой вопрос в стеке.

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Этот однострочный базовый R может выводить вектор чередующихся нулей и повторяющихся Length раз.

unlist(lapply(seq_along(Length), function(i) rep((i - 1)%% 2, each = Length[i])))
0 голосов
/ 20 апреля 2020

Еще один способ сделать это:

rep(x = rep_len(x = 0:1,
                length.out = length(x = Length)),
    times = Length)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...