У меня есть data.frame df
, и я хочу, чтобы каждая строка в этом df
дублировалась lengthTime
раза и добавлялся новый столбец, который насчитывает от 1 до lengthTime
для каждой строки в df
> .
Я знаю, это звучит довольно сложно, но в основном я хочу применить expand.grid
к df
. Вот уродливое обходное решение, и у меня есть ощущение, что наиболее простое решение (возможно, даже функция base-R?):
df <- data.frame(ID = rep(letters[1:3], each=3),
CatA = rep(1:3, times = 3),
CatB = letters[1:9])
lengthTime <- 3
nrRow <- nrow(df)
intDF <- df
for (i in 1:(lengthTime - 1)) {
df <- rbind(df, intDF)
}
df$Time <- rep(1:lengthTime, each=nrRow)
Я думал, что могу просто использовать expand.grid(df, 1:lengthTime)
, но это не работает. outer
тоже не повезло. Так кто-нибудь знает хорошее решение?