ruby-on-rails - 如何将 float 转换为 ruby​​ 中的数组?

标签 ruby-on-rails ruby arrays floating-point standard-deviation

我编写了一个程序,您可以在其中找到存储在另一个 txt 文件中的数据的平均值和标准差。但是,每当我运行它时,我都会收到一条错误消息,指出它无法将 float 转换为数组:

avg_temp.rb:27:in `-': can't convert Float into Array (TypeError)
    from avg_temp.rb:27:in `block in <main>'
    from avg_temp.rb:26:in `each'
    from avg_temp.rb:26:in `<main>'

这是一行:

variance = variance + (x-avg)**2

这是程序:

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

contents = data.read

contents = contents.split("\r\n")
#split up array
contents.collect! do |x|
        x.split(',')
end


sum = 0

contents.each do |x|
#make loop to find average
        sum = sum  + x[1].to_f 
end
avg = sum / contents.length
puts "The average temperature of Laguardia Airport from 11/97 - 05/11 is:
#{ avg.round(3)}C (Answer is rounded to nearest thousandth place)"
#puts average


variance = 0
contents.each do |x|
        variance = variance + (x-avg)**2
end 

variance = variance / contents.length
variance = Math.sqrt(variance)
puts variance

最佳答案

由于您的平均值仅基于 x[1],因此我假设这些值才是最重要的。在这种情况下,只需像求和一样使用 x[1].to_f:

variance = variance + (x[1].to_f - avg)**2

关于ruby-on-rails - 如何将 float 转换为 ruby​​ 中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19503977/

相关文章:

ruby-on-rails - 更改 Rails 中的默认 View 路径?

PHP如何计算foreach循环中的相同单词

mysql - has_many 总和事件记录

ruby-on-rails - 根据配置在运行时选择 Ruby gem

ruby-on-rails - 密码更新后使 Devise 用户 session 标识符失效

ruby - 确定 ruby 闰年的简单方法?

ruby-on-rails - Rails3 : warning: toplevel constant ApplicationController referenced by

ruby-on-rails - 无需身份验证的安全 Rails 3 MultiStep Order Form 的最佳方法

javascript - 如何在哈希数组中找到最新的日期并返回对应的名称键/值

ios - swift 展开问题