Ich habe diesen Datenrahmen:R - Mit Liste(), um aggregierte Datenrahmen
> head(DF, 10)
DATE USER CATEGORY QTY
1 2017-09-04 A79 Footwear 2167
2 2017-08-31 A41 Accessories 342
3 2017-08-27 A34 Accessories 828
4 2017-08-22 A68 Accessories 1292
5 2017-08-23 A68 Accessories 1297
6 2017-08-23 A68 Footwear 1944
7 2017-08-25 A68 Accessories 60
8 2017-08-25 A68 Footwear 5
9 2017-08-25 A68 Apparel 2454
10 2017-08-29 A68 Accessories 2521
Was ich will, ist dies:
> head(DF1, 10)
DATE USER CATEGORIES QTY_SUM
1 2017-09-04 A79 Footwear 2167
2 2017-08-31 A41 Accessories 342
3 2017-08-27 A34 Accessories 828
4 2017-08-22 A68 Accessories 1292
5 2017-08-23 A68 Accessories-1297, Footwear-1944 3241
6 2017-08-25 A68 Accessories-60, Footwear-5, Apparel-2454 2519
7 2017-08-29 A68 Accessories 2521
ich mit aggregate
versucht, funktioniert nicht gut. Ich denke, das könnte mit etwas Ähnliches möglich sein:
DF1 <- data.table(DF, key=c('DATE', 'USER_ID'))
DF1 <- DF1[, list(CATEGORIES=paste0(CATEGORY, "-", QTY), QTY=sum(QTY)), by=c('DATE', 'USER_ID')]
> head(x, 10) #getting this
DATE USER CATEGORY QTY
1 2017-09-04 A79 Footwear-2167 2167
2 2017-08-31 A41 Accessories-342 342
3 2017-08-27 A34 Accessories-828 828
4 2017-08-22 A68 Accessories-1292 1292
5 2017-08-23 A68 Accessories-1297 1297
6 2017-08-23 A68 Footwear-1944 1944
7 2017-08-25 A68 Accessories-60 60
8 2017-08-25 A68 Footwear-5 5
9 2017-08-25 A68 Apparel-2454 2454
10 2017-08-29 A68 Accessories 2521
Was mache ich falsch? Bitte schlagen Sie vor, ob es bessere Möglichkeiten gibt, dies zu tun.
Vielen Dank, das ist perfekt. Ich habe jedoch gerade herausgefunden, dass ich diesen "Kollaps" innerhalb der "paste0" -Funktion vermisse, was auch die Aufgabe erfüllt. – Arani