我正在尝试对用户进行分组,以从他们的 ruby 哈希中的数据创建散点图,如下所示:
[{"userid"=>"1275", "num"=>"1", "amount"=>"15.00"},
{"userid"=>"1286", "num"=>"3", "amount"=>"26.67"}, .... ]
基本上,num 中的值可以是从 1 到 4 的整数,而 amount 最高可达 ~100。我想分两层深,首先按 num 分组,然后 4 个新箱中的每一个都应按数量(0-20、20-50、50-80、80+)进一步划分,总共 16 个组。
最终产品应该是散列数组或数组数组,然后我可以将其传递给我的视图以在 d3 中绘制内容。我有一个功能版本,它使用案例语句和基本的流控制条件,但我想使用 group_by 子句来实现更优雅/更短的代码。
我不太了解 group_by 上的文档,因此将不胜感激。
编辑:输出应该或多或少像这样
[[{"userid"=>"1", "num"=>"1", "amount"=>"15.00"}
{"userid"=>"2", "num"=>"1", "amount"=>"19.00"}],
[{"userid"=>"3", "num"=>"1", "amount"=>"25.00"}
{"userid"=>"4", "num"=>"1", "amount"=>"30.00"}],
[{"userid"=>"5", "num"=>"2", "amount"=>"15.00"}]]
基本上是一个包含 16 个键值对子数组的数组。