csvなどで多重配列を縦横を入れ替える(行列切り替え)

小ネタです。
Csvファイルなどで行列を切り替えて出力したい場合はtransposeが便利です。

1
2
3
4
5
6
7
8
9
10
csv.each{|row| p row.join(",") }
csv = [["user_name", "age", "gender"], ["藤井", "36", "men"]]
csv.each{|row| p row.join(",") }
# => "user_name,age,gender"  
# => "藤井,36,men"  

csv.transpose.each{|row| p row.join(",") }
# => "user_name,藤井"  
# => "age,36"  
# => "gender,men"  

Comments