我试图根据各个值落在一个范围内的位置将一个整数数组分组为一个散列。基本上我想要将数组转换为固定宽度的直方图。Ruby Array to Histogram:如何按范围对数字进行分组?
实施例:
values = [1,3,4,4,4,4,4,10,12,15,18]
bin_width = 3
我被它们落入3单位宽桶像这样数组值成基于范围的historgram需要组:
{'0..2'=>[1,3],'3..5'=>[4,4,4,4,4],'6..8'=>[],'9..11'=>[10]....
是有一个简单的一行解决方案(可能类似于values.group_by{|x| #range calc}
)可以在这里工作?
问题:1)我想3应该是3..5。 2)为什么使用字符串而不是真正的范围?3)你还需要空的范围? – tokland 2012-07-31 14:16:10
应该没有痴迷写单行。争取只涉及表达式的解决方案(就是这样,使用功能性方法)是的,担心任务可以节省几条线,不。 – tokland 2012-07-31 14:30:07