【发布时间】:2012-07-27 18:27:35
【问题描述】:
我有一个data.frame df,我希望df 中的每一行都重复lengthTime 次,并添加一个从1 到lengthTime 的新列,用于@987654325 中的每一行@。
我知道,这听起来很复杂,但我基本上想要将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 也没有带来任何运气。那么有人知道一个好的解决方案吗?
【问题讨论】:
标签: r