我正在编写一个程序,它获取一组数据然后对其进行平均。该数据集是拉瓜迪亚机场每个月的平均气温,对应一个温度。
这是一个示例数据点:
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/