Ruby初学者のTIPS
Rubyを学び始めたので細かい学びの記録となります。
csvファイルの読み込み
csvファイルの読み込みについてライブラリのcsvが非常にわかりやすい。下記は名簿から年齢を抽出して平均を出す簡単な処理。
require "csv" *scores = CSV.read('meibo.csv') scores *ab = scores.transpose num = ab[2].map(&:to_i) puts num.inject{|sum, i| sum + i }/num.size
transposeは行と配列の入れ替え、injectは繰り返し計算用のメソッドでこちらはできることが多くちとわかりづらい(あとmapも)。map(&:to_i)の&の意味がさっぱりわからなかったがmapはブロックを引数にとるため&をつけることでブロックをオブジェクトとして扱っているような気がする。最初csvをreadするときにheaders: trueを入れていたところを一行目も読み込みたいのでfalseに変えても無反応だったので不思議だったがその場合はただ消すだけでいいらしい。まだ書き込み・出力の方は未着手なのでまた近日中に。