Data.table имеет различные способы создания сводной таблицы с функцией by =
, но как мы можем сгруппировать информацию о разбивке в группу SAME по форме?
Пример данных
# DT
DT <- data.table(GROUP = c("A_GROUP","B_GROUP","B_GROUP","B_GROUP","A_GROUP",
"A_GROUP","B_GROUP","B_GROUP","B_GROUP","A_GROUP"),
TYPE = c("A","B","C","D","E",
"B","B","A","A","E"),
AMOUNT =c(123,1424,1244,2111,44559,
128,1221,12144,11,439))
Отдельная таблица, но не сгруппированная в один кадр
# ALL
ALL_G <- DT[,.(SUM = format(sum(AMOUNT),big.mark=",")),by = TYPE]
# A_GROUP Breakdown 1
A_G <- DT[grepl("A_GROUP",GROUP),.(SUM =format(sum(AMOUNT),big.mark=",")),by = TYPE]
# B_GROUP Breakdown 2
B_G <- DT[grepl("B_GROUP",GROUP),.(SUM = format(sum(AMOUNT),big.mark=",")),by = TYPE]
Желаемая форма
# TARGET
TYPE ALL SUM A_GROUP_SUM B_GROUP_SUM
A 12,278 123 12,155
B 2,773 128 2,645
C 1,244 0 1,244
D 2,111 0 2,111
E 44,998 44998 0
Как можноя достигну этого?