我有data.frame df
,我想,在這個df
每一行復制lengthTime
倍,並且將新列補充說從1計數到lengthTime
在df
每一行。替代expand.grid爲data.frames
我知道,這聽起來很複雜,但我基本上想要的是將expand.grid
應用於df
。這裏是一個醜陋的解決辦法,我有一種感覺,有大部分是一個簡單的解決方案(甚至基本-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
也沒有帶來任何運氣。那麼有誰知道一個好的解決方案?
我真的沒有什麼比喬蘭打敗了我40秒,但我會離開它,因爲它稍微更明確。 – 2012-07-27 18:44:10
先到先得,所以我接受了他的回答;-)但是你們倆都+1。這是一個非常好的解決方案! – 2012-07-27 19:00:57