Повторите строки на основе вектора - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь повторить строки в R несколько раз (как часто определяется столбец).Мой исходный код работает только иногда по какой-то причине.

start <- c(1901, 1902, 1950, 1980, 1980)
end <- c(1905, 1910, 1951, 1999, 1985)
df <- data.frame(start, end)
df$count <- df$end - df$start

Я пытаюсь повторить строки столько раз, сколько разница между началом и концом.Каждый год получает по одной строке (необходимо +1, поэтому и в начале, и в конце года также есть строка).

Фрагмент кода, который работает только иногда, выглядит следующим образом:

df<- df[rep(rownames(df), df$count +1), ]

Иногда говорится, что аргумент "times" неверен.

1 Ответ

0 голосов
/ 14 февраля 2019

Я думаю, что вы хотите

df[rep(seq_along(df$count), df$count), ]

Это повторяет последовательность 1:length(df$count) с каждым из df$count раз.

...