R как вырастить таблицу данных

У меня есть большой data.table, который выглядит как

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

Я хотел бы "увеличить" эту таблицу данных таким образом, чтобы в ней было все 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

Такой рост определенно не является операцией соединения. Любая помощь приветствуется. Заранее спасибо.

1 ответ

Решение
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
Другие вопросы по тегам