fork download
  1. library(rjson)
  2. library(jsonlite)
  3. library(data.table)
  4. library(magrittr)
  5.  
  6. # fake data; 50 rows, 5 item_category_id
  7. set.seed(1234)
  8. d0 <-
  9. data.table(
  10. item_id = 1L:50L,
  11. ttl = runif(50L),
  12. item_category_id = sample(1L:5L, 50L, replace = T)
  13. ) %>%
  14. .[order(item_category_id, item_id, ttl), ]
  15.  
  16. d1 <-
  17. d0[, .(
  18. ttl = sum(ttl),
  19. raw.of.item = list(item_id),
  20. raw.of.ttl = list(ttl)
  21. ), by = .(item_category_id)] %>%
  22. .[order(item_category_id), ]
  23. # apply(d0, 1, list)
  24.  
  25. res <- vector("list", nrow(d1))
  26. for(i in 1:nrow(d1)) {
  27. res[[i]] <-
  28. vector("list", 3) %>% set_names(c("item_category_id", "ttl.sum", "items"))
  29. res[[i]][[1]] <- d1$item_category_id[i]
  30. res[[i]][[2]] <- d1$ttl[i]
  31. res[[i]][[3]] <- vector("list", d1$raw.of.item[i][[1]] %>% length)
  32. for(j in 1:(d1$raw.of.item[i][[1]] %>% length)) {
  33. res[[i]][[3]][[j]] <- list(`item_id` = d1$raw.of.item[i][[1]][j], `ttl` = d1$raw.of.ttl[i][[1]][j])
  34. }
  35. }
  36. toJSON(res)
  37. toJSON(res) %>% prettify
  38.  
Success #stdin #stdout #stderr 0.37s 45988KB
stdin
Standard input is empty
stdout
[{"item_category_id":[1],"ttl.sum":[8.6846],"items":[{"item_id":[1],"ttl":[0.1137]},{"item_id":[5],"ttl":[0.8609]},{"item_id":[9],"ttl":[0.6661]},{"item_id":[12],"ttl":[0.545]},{"item_id":[14],"ttl":[0.9234]},{"item_id":[19],"ttl":[0.1867]},{"item_id":[21],"ttl":[0.3166]},{"item_id":[23],"ttl":[0.159]},{"item_id":[25],"ttl":[0.2188]},{"item_id":[28],"ttl":[0.9147]},{"item_id":[33],"ttl":[0.3047]},{"item_id":[35],"ttl":[0.1811]},{"item_id":[39],"ttl":[0.9922]},{"item_id":[41],"ttl":[0.5533]},{"item_id":[43],"ttl":[0.3118]},{"item_id":[44],"ttl":[0.6218]},{"item_id":[45],"ttl":[0.3298]},{"item_id":[48],"ttl":[0.485]}]},{"item_category_id":[2],"ttl.sum":[4.2217],"items":[{"item_id":[2],"ttl":[0.6223]},{"item_id":[13],"ttl":[0.2827]},{"item_id":[15],"ttl":[0.2923]},{"item_id":[17],"ttl":[0.2862]},{"item_id":[27],"ttl":[0.5257]},{"item_id":[29],"ttl":[0.8313]},{"item_id":[37],"ttl":[0.2012]},{"item_id":[38],"ttl":[0.2588]},{"item_id":[47],"ttl":[0.6771]},{"item_id":[49],"ttl":[0.2439]}]},{"item_category_id":[3],"ttl.sum":[3.8573],"items":[{"item_id":[4],"ttl":[0.6234]},{"item_id":[6],"ttl":[0.6403]},{"item_id":[7],"ttl":[0.0095]},{"item_id":[18],"ttl":[0.2668]},{"item_id":[20],"ttl":[0.2322]},{"item_id":[26],"ttl":[0.8106]},{"item_id":[32],"ttl":[0.2652]},{"item_id":[34],"ttl":[0.5073]},{"item_id":[46],"ttl":[0.502]}]},{"item_category_id":[4],"ttl.sum":[2.5303],"items":[{"item_id":[3],"ttl":[0.6093]},{"item_id":[8],"ttl":[0.2326]},{"item_id":[16],"ttl":[0.8373]},{"item_id":[24],"ttl":[0.04]},{"item_id":[30],"ttl":[0.0458]},{"item_id":[50],"ttl":[0.7655]}]},{"item_category_id":[5],"ttl.sum":[4.1801],"items":[{"item_id":[10],"ttl":[0.5143]},{"item_id":[11],"ttl":[0.6936]},{"item_id":[22],"ttl":[0.3027]},{"item_id":[31],"ttl":[0.4561]},{"item_id":[36],"ttl":[0.7597]},{"item_id":[40],"ttl":[0.8074]},{"item_id":[42],"ttl":[0.6464]}]}] 
[
    {
        "item_category_id": [
            1
        ],
        "ttl.sum": [
            8.6846
        ],
        "items": [
            {
                "item_id": [
                    1
                ],
                "ttl": [
                    0.1137
                ]
            },
            {
                "item_id": [
                    5
                ],
                "ttl": [
                    0.8609
                ]
            },
            {
                "item_id": [
                    9
                ],
                "ttl": [
                    0.6661
                ]
            },
            {
                "item_id": [
                    12
                ],
                "ttl": [
                    0.545
                ]
            },
            {
                "item_id": [
                    14
                ],
                "ttl": [
                    0.9234
                ]
            },
            {
                "item_id": [
                    19
                ],
                "ttl": [
                    0.1867
                ]
            },
            {
                "item_id": [
                    21
                ],
                "ttl": [
                    0.3166
                ]
            },
            {
                "item_id": [
                    23
                ],
                "ttl": [
                    0.159
                ]
            },
            {
                "item_id": [
                    25
                ],
                "ttl": [
                    0.2188
                ]
            },
            {
                "item_id": [
                    28
                ],
                "ttl": [
                    0.9147
                ]
            },
            {
                "item_id": [
                    33
                ],
                "ttl": [
                    0.3047
                ]
            },
            {
                "item_id": [
                    35
                ],
                "ttl": [
                    0.1811
                ]
            },
            {
                "item_id": [
                    39
                ],
                "ttl": [
                    0.9922
                ]
            },
            {
                "item_id": [
                    41
                ],
                "ttl": [
                    0.5533
                ]
            },
            {
                "item_id": [
                    43
                ],
                "ttl": [
                    0.3118
                ]
            },
            {
                "item_id": [
                    44
                ],
                "ttl": [
                    0.6218
                ]
            },
            {
                "item_id": [
                    45
                ],
                "ttl": [
                    0.3298
                ]
            },
            {
                "item_id": [
                    48
                ],
                "ttl": [
                    0.485
                ]
            }
        ]
    },
    {
        "item_category_id": [
            2
        ],
        "ttl.sum": [
            4.2217
        ],
        "items": [
            {
                "item_id": [
                    2
                ],
                "ttl": [
                    0.6223
                ]
            },
            {
                "item_id": [
                    13
                ],
                "ttl": [
                    0.2827
                ]
            },
            {
                "item_id": [
                    15
                ],
                "ttl": [
                    0.2923
                ]
            },
            {
                "item_id": [
                    17
                ],
                "ttl": [
                    0.2862
                ]
            },
            {
                "item_id": [
                    27
                ],
                "ttl": [
                    0.5257
                ]
            },
            {
                "item_id": [
                    29
                ],
                "ttl": [
                    0.8313
                ]
            },
            {
                "item_id": [
                    37
                ],
                "ttl": [
                    0.2012
                ]
            },
            {
                "item_id": [
                    38
                ],
                "ttl": [
                    0.2588
                ]
            },
            {
                "item_id": [
                    47
                ],
                "ttl": [
                    0.6771
                ]
            },
            {
                "item_id": [
                    49
                ],
                "ttl": [
                    0.2439
                ]
            }
        ]
    },
    {
        "item_category_id": [
            3
        ],
        "ttl.sum": [
            3.8573
        ],
        "items": [
            {
                "item_id": [
                    4
                ],
                "ttl": [
                    0.6234
                ]
            },
            {
                "item_id": [
                    6
                ],
                "ttl": [
                    0.6403
                ]
            },
            {
                "item_id": [
                    7
                ],
                "ttl": [
                    0.0095
                ]
            },
            {
                "item_id": [
                    18
                ],
                "ttl": [
                    0.2668
                ]
            },
            {
                "item_id": [
                    20
                ],
                "ttl": [
                    0.2322
                ]
            },
            {
                "item_id": [
                    26
                ],
                "ttl": [
                    0.8106
                ]
            },
            {
                "item_id": [
                    32
                ],
                "ttl": [
                    0.2652
                ]
            },
            {
                "item_id": [
                    34
                ],
                "ttl": [
                    0.5073
                ]
            },
            {
                "item_id": [
                    46
                ],
                "ttl": [
                    0.502
                ]
            }
        ]
    },
    {
        "item_category_id": [
            4
        ],
        "ttl.sum": [
            2.5303
        ],
        "items": [
            {
                "item_id": [
                    3
                ],
                "ttl": [
                    0.6093
                ]
            },
            {
                "item_id": [
                    8
                ],
                "ttl": [
                    0.2326
                ]
            },
            {
                "item_id": [
                    16
                ],
                "ttl": [
                    0.8373
                ]
            },
            {
                "item_id": [
                    24
                ],
                "ttl": [
                    0.04
                ]
            },
            {
                "item_id": [
                    30
                ],
                "ttl": [
                    0.0458
                ]
            },
            {
                "item_id": [
                    50
                ],
                "ttl": [
                    0.7655
                ]
            }
        ]
    },
    {
        "item_category_id": [
            5
        ],
        "ttl.sum": [
            4.1801
        ],
        "items": [
            {
                "item_id": [
                    10
                ],
                "ttl": [
                    0.5143
                ]
            },
            {
                "item_id": [
                    11
                ],
                "ttl": [
                    0.6936
                ]
            },
            {
                "item_id": [
                    22
                ],
                "ttl": [
                    0.3027
                ]
            },
            {
                "item_id": [
                    31
                ],
                "ttl": [
                    0.4561
                ]
            },
            {
                "item_id": [
                    36
                ],
                "ttl": [
                    0.7597
                ]
            },
            {
                "item_id": [
                    40
                ],
                "ttl": [
                    0.8074
                ]
            },
            {
                "item_id": [
                    42
                ],
                "ttl": [
                    0.6464
                ]
            }
        ]
    }
]
 
stderr
Attaching package: ‘jsonlite’

The following objects are masked from ‘package:rjson’:

    fromJSON, toJSON