2012-04-07 4 views
0

моя проблема в том, что я не могу читать удвоения из csv-файла, но только целые числа. и так есть ошибка «-infinity» и «NaN», когда я пытаюсь сделать расчеты с массивами роста:Как читать парные разряды из csv-файла в Ruby

require 'csv' 
    filename = 'file.csv' 

    csv_data = CSV.read(filename, :col_sep => ";") 
    csv_data.shift 
    price1, price2 = csv_data.transpose.map { |a| a.map(&:to_i)} 


    #calulate yields 
    yields1 = Array.new 
    yields2 = Array.new 

    price1.each_cons(2) { |c| 
    yields1.push(Math.log(c[1]/c[0])) 
    } 

    price2.each_cons(2) { |c| 
    yields2.push(Math.log(c[1]/c[0])) 
    } 

    # Statistics 

    module Enumerable 

    def mean 
     mean = self.reduce(:+)/self.length.to_f 
     return mean 
    end 
    end 

    puts "mean yields1 = " + yields1.mean.to_s 

Мои два вопроса:

  1. Как я могу читать парный из CSV -файл?
  2. где ошибка для ошибок?

ответ

1

Изменить

price1, price2 = csv_data.transpose.map { |a| a.map(&:to_i)} 

в

price1, price2 = csv_data.transpose.map { |a| a.map(&:to_f)} 
Смежные вопросы