基于向量重复行
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
次。
我试图多次重复 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
次。