基于向量重复行

Repeat rows based on vector

我试图多次重复 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" 参数无效。

我想你想要

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

这将重复序列 1:length(df$count),每次 df$count 次。