Excel などの表計算は便利だが、ちょっと複雑な計算や検索をさせようとすると操作が面倒だ。Ruby の Enumerable Mix-in の関数を使うと、Rubyで表計算の処理をさせることができる。
たとえば次のような表があるとする。 table = [ {:name => 'Ken', :age => 24}, {:name => 'Mary', :age => 20}, {:name => 'John', :age => 31}, {:name => 'Mary Ann', :age => 3}] ちょっと荒っぽいが、Array クラスにテーブルを表示するメソッドを定義する。 class Array def dump self.each{|x| print x[:name], ' ', x[:age], "\n"} end end そうすると上のテーブルは次のようにして表示できる。 table.dump 名前でソートするには次のようにする。 table.sort{|x,y| x[:name] <=> y[:name]}.dump 20歳以下のメンバーを抽出するには次のようにする。 table.select{|x| x[:age] <= 20}.dump 年齢の合計を求めるには次のようにする。 total = 0; table.each{|x| total += x[:age]};puts total 平均を求めるには次のようにする。 table.each{|x| total += x[:age]};puts total/table.size 正規表現を使った検索は次のようにする。 result = []; table.each{|x| result.push(x) if x[:name] =~ /Mary/}; result.dump その他いろいろな処理を、Rubyで自由に行うことができる。小さいデータならリレーショナルデータベースの真似事をさせることもできる。いちいちハッシュを記述するのが面倒ならテキストファイルを読み込んで作るようにすることもできる。また、peg.rb を使えば偽SQLが作れそうだがそれはまたの機会に。
by tnomura9
| 2008-09-09 01:52
| Ruby
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||