我想在給定條件下擴展數據幀。這與expand data frames inside data frame有點類似,但不完全相同。展開數據幀
我有一個數據幀:
df = data.frame(ID = c(3,3,3,3, 17,17,17, 74, 74, 210, 210, 210, 210), amount = c(101, 135, 101, 68, 196, 65 ,135, 76, 136, 15, 15, 15 ,15), week.number = c(4, 6, 8, 10, 2, 5, 7, 2, 6, 2, 3, 5, 6))
我想擴大對於每個ID,給定一個最小和最大week.number數據幀,並在這種擴張的量列具有0。閔week.number爲1,最大week.number是10.預期的結果將是:
df1 <- data.frame(ID = c(rep(3,10), rep(17, 10), rep(74, 10), rep(210, 10)),
amount = c(0, 0, 0, 101, 0, 135, 0, 101, 0, 68, 0, 196,
0, 0, 65, 0, 135, 0, 0, 0, 0, 76, 0, 0, 0,
136, 0, 0, 0, 0, 0, 15, 15, 0, 15, 15, 0, 0,
0, 0))
(在現實中,我有成千上萬的ID和週數去從1到160)。
有沒有簡單快捷的方法來做到這一點?
謝謝!
你說得對,我要編輯。 Tx用於注意。 – nicola
謝謝!兩種解決方案都非常優雅我認爲,對於我的情況,sparseVector更有用,因爲擴展數據框時我會有更多的列保持不變。再次感謝! – Andres