0

私の問題は、csv ファイルから double を読み取ることができず、整数のみを読み取ることができないことです。そのため、成長配列を使用して計算しようとすると、「-infinity」および「NaN」というエラーが発生します。

    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

私の2つの質問:

  1. CSV ファイルから Doubles を読み取るにはどうすればよいですか?
  2. エラーの間違いはどこですか?
4

1 に答える 1

1

変化する

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

price1, price2 = csv_data.transpose.map { |a| a.map(&:to_f)}
于 2012-04-07T10:42:43.803 に答える