Повторите строки на основе вектора
Я пытаюсь повторить строки в 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 ответ
Решение
Я думаю ты хочешь
df[rep(seq_along(df$count), df$count), ]
Это повторяет последовательность 1:length(df$count)
с каждым из df$count
раз.