我有两行代码,每行输出一个哈希值:一个代码具有特定于评级的计数(例如"super"
或"good"
),另一行具有所有评级的计数。
具体评级:
Car.send(rating).group("DATE_TRUNC('week', created_at)").order('date_trunc_week_created_at asc').count
全部计算:
Car.group("DATE_TRUNC('week', created_at)").order('date_trunc_week_created_at asc').count
这是第一行代码的输出哈希值。第二行输出类似的东西,只是计数更高,因为它计算所有评级,而不仅仅是一个。
{2013-03-11 00:00:00 UTC=>21,
2013-03-18 00:00:00 UTC=>26,
2013-03-25 00:00:00 UTC=>22,
2013-04-01 00:00:00 UTC=>38,
2013-04-08 00:00:00 UTC=>67,
2013-09-16 00:00:00 UTC=>1}
如何计算散列1的值与散列2的值的百分比?我知道如何计算百分比(value1 * 100 / value2
),但我不知道如何从哈希值中获取值。日期必须保持现状。我只需要计算值的百分比。
编辑:根据要求,2个哈希+预期结果:
哈希1
{2013-03-11 00:00:00 UTC=>21,
2013-03-18 00:00:00 UTC=>26,
2013-03-25 00:00:00 UTC=>22,
2013-04-01 00:00:00 UTC=>38,
2013-04-08 00:00:00 UTC=>67,
2013-09-16 00:00:00 UTC=>1}
Hash 2
{2013-03-11 00:00:00 UTC=>42,
2013-03-18 00:00:00 UTC=>89,
2013-03-25 00:00:00 UTC=>345,
2013-04-01 00:00:00 UTC=>56,
2013-04-08 00:00:00 UTC=>123,
2013-09-16 00:00:00 UTC=>5}
预期结果(value hash 1 * 100 / value hash 2
)
{2013-03-11 00:00:00 UTC=>50,
2013-03-18 00:00:00 UTC=>29.213,
2013-03-25 00:00:00 UTC=>6.376,
2013-04-01 00:00:00 UTC=>67.857,
2013-04-08 00:00:00 UTC=>54.471,
2013-09-16 00:00:00 UTC=>20}
答案 0 :(得分:0)
如果两个哈希值都有相同的键,我认为没有问题:
h3 = Hash.new()
h1.each_key do |key|
h3[key] = h1[key]*100.0/h2[key]
end