ファイルから数値データを取得するためのアプリケーションを作成しています。しかし、データは文字列形式で取得されるので、私は浮動小数点数に変換する必要があります。これは楽しい時間が始まるところです。 (ライン65-73)に示すように私のコードの関連セクションは次のとおりです。文字列の配列を浮動小数点数の配列に変換する
ft = []
puts "File Name: #{ARGV[0]}"
File.open(ARGV[0], "r") do |file|
file.each_line do |line|
ft << line.scan(/\d+/)
end
end
ft.collect! {|i| i.to_f}
これはIRBでうまく動作します、つまり、最後の行は、フロートに配列を変更します。私は自分のアプリケーションを実行すると
irb(main):001:0> ft = ["10", "23", "45"]
=> ["10", "23", "45"]
irb(main):002:0> ft.collect! {|i| i.to_f}
=> [10.0, 23.0, 45.0]
は、しかし、私はこのエラーを取得する:
ruby-statistics.rb:73:in `block in <main>': undefined method `to_f' for #<Array:
0x50832c> (NoMethodError)
from ruby-statistics.rb:73:in `collect!'
from ruby-statistics.rb:73:in `<main>'
これで任意の助けをいただければ幸いです。
また、.inspectを使ってftを調べることもできます:puts ft.inspect –