ruby

rubyによるネットワーク形式のファイルの併合(マージ)

2つのファイル(データファイルと ネットワークファイルを)を一列目をキーに 併合する。 ネットワークファイルは リスト表現されている。 イメージとしては、file1.csv 1, 44, a 2, 55, bb 3, 54, cd 4, 543, df 5, 53, ef file2.csv 1, 4 1, 5 2, 4 2, 3 …

rubygemsのcygwinへのインストール

rubygemsはcygwinのrubyの 標準では搭載されていない。cygwinのsetup.exeとは別に インストールする必要がある。http://docs.rubygems.org/read/book/1ソースは、 http://rubyforge.org/frs/?group_id=126 にある。 1)ソース:rubygems-1.3.5.tgz を上のペ…

rubyとawkの使い分け

rubyとawkは 扱うファイルが一つの場合はawk、 扱うファイルが二つの場合はrubyでデータを処理するのが良い気がする。 ただし、awkはgetlineで複数ファイルを 扱える。

ruby:csv出力に便利な配列クラスのjoinメソッド

csvファイル出力にはArrayクラスのjoinが便利。join("区切り")で区切り文字で配列 を結合した文字列を出力。 カンマ区切りなら join(",") でOK awkのOFSに対応できる。 a="test1"; b="test2"; c="test3";puts [a,b,c].join(",") 出力 test1,test2,test3

 stringクラスの便利なメソッド(rubyをsed風に使う) :tr_s

rubyの検出関数tr_sについて。sed的な置換ができる。 置換 tr_s例)ダブルコーテーションの削除 str="\"abcdefg\"" puts tr_s(",","")

 stringクラスの便利なメソッド(特定のパターンを検出、配列に格納) :scan

rubyの検出関数scanについて。 検出 scan例)ダブルコーテーション囲まれた、数字データと日付データ[1996-2-12]形式の検出。検出された順に配列に格納される。fdaf="123" fdkkak="1996-2-11" fdafad="42"ならば、 a=["123","1996-2-11","42"] と格納される…

コルモゴロフ-スミルノフ検定の実装 (ruby版)

コロモゴロフ-スミルノフ検定のrubyでの実装。 基本的に昔書いたコロモゴロフ検定のR版 http://d.hatena.ne.jp/arupaka-_-arupaka/20090819/1250660276 のrubyへの翻訳。 検定する分布はべき分布 今回は、rubyのNArray(数値計算用配列) を利用する。そのた…

ruby連想配列

hashクラスを使用します。 a=hash.new()

rubyのbreakはループを抜ける。

rubyのbreakは内側のループを 抜けられる。

split関数

rubyのStringクラスのsplit関数 (String#splitを書くそうだ..。) セパレートした文字列を区切る関数カンマ区切りでは a="1,2,3,4,5" b=a.split(/\s*,\s*/) puts b[3] 関数内の正規表現の部分は、\sが空白文字。[ \t\n\r\f] と同じ。 「コメジルシ」が0回以上…

rubyでのファイル処理

ファイルを開いて一行目を出力 f1=File.open("test.txt","r") puts f1.readline(); ファイルを開いて全行を出力 f1=File.open("test.txt","r") f1.each{|str| puts str; }