ruby-on-rails - 如何为温度数据集创建平均值?

标签 ruby-on-rails ruby arrays ruby-on-rails-3 split

我正在编写一个程序,它获取一组数据然后对其进行平均。该数据集是拉瓜迪亚机场每个月的平均气温,对应一个温度。

这是一个示例数据点:

    2009-07,23.6

也就是年月,温度。

我有 163 个数据点。所有数据点都在一个 .txt 文件中,每一个都在一个新行上。

我把数据做成一个数组然后拆分。出于某种原因,我的程序每次尝试运行时都说我的平均值为 0

这是我的代码:

data = File.open("avg_temp.txt", "r+")

contents = data.read

contents = contents.split("\r\n")

contents.collect! do |x|
        x.split(',')
end


sum = 0

data.each do |x|

sum = sum  + x[1].to_f

end

avg = sum / contents.length

puts avg

最佳答案

在结束后的循环外赋值avg = sum/contents.length。在循环内定义的变量的作用域限于该循环。此外,您正在遍历 data,应该是 content

contents.each do |x|

    puts x[1] # to check if the right value is being evaluated
    sum = sum  + x[1].to_f     

end

avg = sum/contents.length

关于ruby-on-rails - 如何为温度数据集创建平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18991748/

相关文章:

ruby-on-rails - 如何在 Rails 3 中将多个属性传递给 find_or_create_by?

ruby - Nokogiri 的 XML 命名空间问题

ruby - 为什么 Array#each 返回具有相同元素的数组?

arrays - Bash,调用值时使用变量作为关联数组的名称

javascript - 自动递增 JS 对象数组

javascript - 使用 JavaScript/AngularJS 将数组转换为对象

ruby-on-rails - 如何分解长行的 Ruby

ruby-on-rails - 如何在 vim/sublime 中很好地显示 Rails development.log?

javascript - jquery 删除特定的 Accordion 类

ruby-on-rails - FactoryBot 可以在创建模型后生成工厂吗?