R how to grow a data.table

data.table, r, replicate

Solution

setkey(dt, custid, dayofweek)
dt[CJ(unique(custid), 1:7)]
#    custid dayofweek revenue
# 1:     AA         1      NA
# 2:     AA         2     345
# 3:     AA         3     545
# 4:     AA         4      NA
# 5:     AA         5      NA
# 6:     AA         6      NA
# 7:     AA         7      NA
# 8:     BB         1     544
# 9:     BB         2      NA
#10:     BB         3      NA
#11:     BB         4     456
#12:     BB         5      NA
#13:     BB         6      NA
#14:     BB         7      NA
#15:     CC         1      NA
#16:     CC         2      NA
#17:     CC         3      NA
#18:     CC         4      NA
#19:     CC         5      NA
#20:     CC         6      NA
#21:     CC         7     231
#    custid dayofweek revenue

Problem

I've a large data.table which looks like ``` custid, dayofweek, revenue AA 2 345 AA 3 545 BB 1 544 BB 4 456 CC 7 231 ``` I would like to "grow" this data table such that it has all 7 numbers for each custid with the revenue column set to `NA`. Example shown below. ``` custid, dayofweek, revenue AA 1 NA AA 2 345 AA 3 545 AA 4 NA AA 5 NA AA 6 NA AA 7 NA BB 1 544 BB 2 NA BB 3 NA BB 4 456 BB 5 NA BB 6 NA BB 7 NA CC 1 NA CC 2 NA CC 3 NA CC 4 NA CC 5 NA CC 6 NA CC 7 231 ``` Growing it that way is definitely not a join operation. Any help appreciated. Thanks in advance.

Original source