1
を集約し、リストを()の使用:R - 私は、このデータフレームを持つデータフレーム
> 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
私が欲しいものはこれです:
> 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
私はaggregate
を使用してみましたが、うまく動作しません。私はこれがこのような何かで可能かもしれないと思う:
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
私は間違って何をしていますか?これを行うより良い方法があるかどうかをご提案ください。
ありがとう、これは完璧です。しかし、私は 'paste0'関数の中でこの'崩壊 'がなくなっていることを知りました。これも仕事です。 – Arani