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