Hatena::ブログ(Diary)

arupaka-_-arupakaの日記

2009-12-23

rubyで累積密度分布

rubycsvファイルの3行目で累積密度分布

ruby -na -e -F, 'BEGIN{$a=[]}; $a<<($F[3]);END{l=$a.length;k=l;$a.sort.each{|j| p
uts [j,k/l].join(" ");k=k-1.0;}}' inputFILE

shコマンドでCDF

cf)

sort -t"," -k3,3gr Data.csv | awk -F, 'BEGIN{i=0;}{a[i]=$3;i++;}END{for(i=0;i<=NR;i++){print a[i],i/NR;}'

rubyのが微妙に長い。

rubyをawkの代わりに使う

rubyは完全にawkの代用になる。

書き方までawkと一緒。

csvの2列目の合計を求める方法。

1,2,3

4,5,6

1,3,5

ruby -F"," -an 'BEGIN{$sum};sum=sum+$F[1];END{puts sum}' inputfile 

ポイントはrubyグローバル変数

$をつけること



参考:

http://d.hatena.ne.jp/n9d/20080331/1206945041

rubyでワンライナー

rubyawkのような一行野郎を作る。

rubyawkのようにファイルを一行ずつ

読み込む処理が可能である。

起動オプションを変えることで、

簡単に実現できる。


たとえば、

a,b,c

e,f,g

h,i,j

のようなファイルがある場合、

ruby -F, -an 'puts $F[1]' ファイル名 

とすると

b

f

i


状況としては

まず-aオプション

一行ずつ読み取るモードをオンにする。

その後-nオプションで一行ずつ$Fに入れる。

そのとき自動的に-Fオプションで指定した

区切り","で分割される。

(一行野郎のことは最近はワンライナー

というらしい。)

参考ページ:

http://blog.lilyx.net/2007/11/29/writing-one-liner-in-ruby/

http://d.hatena.ne.jp/keita_yamaguchi/20080831/1220111445

NHK教育 グランジュテ出演者一覧

NHK教育グランジュテ出演者一覧:

グランジュテで検索で飛んでこられる

方が多いのNHKHPが消える前にまとめておく。)

2009年12月19日(土)

堀木エリ子

2009年12月12日(土)

相澤晶子・坂井美雪

2009年12月5日(土)

井原慶子

2009年11月28日(土)

加藤ユカリ・長谷川清美

2009年11月21日(土)

野田満里子・湯本清美

2009年11月14日(土)

細貝里枝・宮崎雅代

2009年11月7日(土)

花千代・清水繭子

2009年10月31日(土)

野口あゆみ・河部眞弓

2009年10月24日(土)

金子エミ・村冨満世

2009年10月17日(土)

古谷千佳子・根本きこ

2009年10月10日(土)

大津愛梨・高木文生

2009年10月3日(土)

山口絵理子・北村千里

データの累積分布を出力

データの累積分布を出力

sort -t"," -k3,3gr Data.csv | awk -F, 'BEGIN{i=0;}{a[i]=$3;i++;}END{for(i=0;i<=NR;i++){print a[i],i/NR;}'

荘子の話

たぶん、荘子のお話。



「あの木を見てご覧。あれはなぜあんなに大きくなれたかわかるかな?」

 応える者はありません。老子は続けます。

「あの木は切っても臭い樹液のせいで木材にはならない。薪にもできない。実を取ろうにもまずくて喰えない。全くの役立たずの木なのだ。しかし、おかげで誰にも相手にされず、切り倒されずに見ての通り大きく成長し、その梢の下で何百人もの人が涼をとり、雨露をしのぐことができる。」   




なんか高校生のとき読んでこんな価値観もあるのかなぁと思ったのを思いだした。荘子の本当の考え方とは、違うかもしれないけれど、ある価値の感覚で役に立たないかもしれないけれど、見方を少しだけ変えればその存在が意味を持つこともある。劣等感の強かった高校生のとき、こんなのを読んで少しだけ楽になったきがする..。