久しぶりに「どう書く?org」に投稿した
タブ区切りデータの処理 どう書く?org
タブ区切りのデータを読み込んで操作をし書き出す方法を教えてください。読み込み・書き出しの方法は任意とします。

与えられるデータは:

* レコードの区切りは改行、カラムの区切りはタブです。
* 最初のレコードはヘッダで、カラムの名前が書いてあります。
* それ以降はデータで、第1,4カラムは整数値、第2,3カラムは文字列値です。

この入力データに対して以下の操作をしたものを書き出してください:

* 第1カラムの値でデータを昇順にソートする。
* 第2カラムと第3カラムをヘッダを含めて入れ替える。
* 第4カラムの値にそれぞれ1を加える。


どう書く?org 7740
require 'csv'

rows = CSV.parse(STDIN.read, "\t")
rows[1], rows[2] = rows[2], rows[1]
result = []
result << rows.shift
rows.sort_by{ |r| r[0] }.
inject(result) { |a, b| b[3] = b[3].to_i + 1; a << b }.
each { |r| puts r.join("\t") }

[PR]
by fkmn | 2008-10-03 23:55 | IT
<< 「サイエンス・ビジネスの挑戦 ... 言ってることがコロコロ変わります。 >>


とあるWebアプリケーションエンジニアの日記
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
プログラミングが「出来る..
from とりあえず9JP?
Genographic ..
from ナンジャモンジャ
ジュセリーノ
from ありの出来事
くちこみブログ集(ライフ..
from くちこみブログ集(ライフ)(..
以降、丁寧語で行こう!
from エッセイ的な何か
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX