3

我有一个大的 data.table 看起来像

custid, dayofweek, revenue
AA 2 345
AA 3 545
BB 1 544
BB 4 456
CC 7 231

我想“增长”这个数据表,使其具有每个 custid 的所有 7 个数字,并且收入列设置为NA。示例如下所示。

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

以这种方式发展它绝对不是一个联合操作。任何帮助表示赞赏。提前致谢。

4

1 回答 1

8
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
于 2014-02-09T19:17:45.683 回答