Estoy escribiendo una aplicación que gira en torno a obtener conjuntos de datos numéricos de un archivo. Sin embargo, dado que los datos se adquieren en forma de cadena, tengo que convertirlos en flotadores, que es donde comienza la diversión. La sección pertinente de mi código es como se muestra (líneas 65-73):Conversión de matriz de cadenas en matriz de flotantes
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}
Esto funciona muy bien en IRB, es decir, la última línea cambia el vector de flotadores.
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]
Sin embargo, cuando ejecuto mi aplicación me sale este error:
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>'
Cualquier ayuda con esto sería apreciada.
Además, no olvide que puede utilizar .inspect para examinar ft: puts ft.inspect –