Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > csvライブラリ > CSV::Tableクラス > by_col
by_col -> CSV::Table
[permalink][rdoc]カラムモードになっている新しい CSV::Table オブジェクトを返します。
元のテーブルモードを変更せずにメソッドチェーンできるので便利です。しか し、大きなデータセットに対しても同じだけメモリを消費するので気をつけて ください。
このメソッドは複製したテーブルを返すので、破壊的なメソッドはメソッド チェーンに組込まないようにしてください。
require "csv"
row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2])
col_table = table.by_col
col_table[0] # => ["row1_1", "row2_1"]
col_table[1] # => ["row1_2", "row2_2"]