我想在给定条件下扩展数据帧。这与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