ruby-on-rails - 平均嵌入在 ruby​​ 哈希中的值

标签 ruby-on-rails ruby arrays hash

我有一个嵌入式散列,我需要为其计算平均值。我已经成功地将它们分组(未分组),但发现平均值对我不起作用

这是示例哈希数据

myhash = {"2011-02-15"=>[["2011-02-15", 10], ["2011-02-15", 60]], 
          "2011-02-22"=>[["2011-02-22", 22]], 
          "2011-02-28"=>[["2011-02-28", 110],["2011-02-28", 70]]}

这是我对它们进行分组的方式(它们曾经只是 {k => v} 未分组)

@r = @myhash.group_by(&:first)

我尝试了此线程 ( What's the best way in Ruby to average sets in an array? ) 中的两种解决方案,但均无效。

好问题。我希望结果按日期取平均值,这样我就可以这样提供它们。

[{"2012-02-15" => 35"}, {"2012-02-22" => 22"}, {"2012-02-28" => 90"}]

最佳答案

Hash[myhash.map { |k,v| [k, v.map(&:last).inject(:+) / v.size] }]
#=> {"2011-02-15"=>35, "2011-02-22"=>22, "2011-02-28"=>90}

关于ruby-on-rails - 平均嵌入在 ruby​​ 哈希中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10940976/

相关文章:

ruby-on-rails - 如何在 before_update 回调中为 activerecord 嵌套属性处理新子级

ruby-on-rails - Rails REST 路由 : dots in the resource item ID

Python 映射数组

c# - 如何在 C# 中将元组转换为数组?

ruby-on-rails - Ruby/Rails 多线程 - 并行运行语句(最好使用 Parallel Gem)

ruby-on-rails - block 给定?在 erb 模板中总是返回 true

ruby-on-rails - .join/has_one 的 ActiveRecord .where :through

ruby-on-rails - rails : Devise: Undefined Method `username'

javascript - 简单的javascript in_array 递归函数

ruby-on-rails - 为什么这个 Rails Controller 测试失败了?