|
setup diary |
グラフを書くときに使っているRだが、プログラム言語としてもそれなりに使える。統計的な計算を含んだ簡単なプログラムの場合には、別の言語でその統計処理のルーチンを書くよりも、Rに元からある関数を使う方が早い場合がある。
しかし、Rの目的は通常のプログラムを作ることではないので、他の言語では簡単にできることが、Rではどのようにしたら良いのか分からない場合もある。その一つがファイルからのデータの読み込みである。data frameにデータを取り込む場合には、read.tableを使ってやっているが、通常の文章などのファイルを読み込む方法がこれまで分からなかった。もしあるとすれば、readなんとかという関数だろうと思って、help.search("read")としてみると、readLinesというのがあって、ファイルの内容を行単位で読み取ることができる関数を見つけた。Rではもっといろいろなことができるのだろうが、良いリファレンスマニュアルは無いのかな。
Rubyではこのmethodを使えば良いということが分かっても、それと同じことをするRの関数が分からないとプログラムを書くのに四苦八苦してしまう。試しに、文字列操作の関数のRubyとRの対応表をつくってみよう。
R | Ruby |
paste(x,y,sep="") | x+y or a.join("") |
substr(x,start,stop) | x[start..stop] |
sub(pattern,replacement,x) | x.sub(pattern,replacement) |
gsub(pattern,replacement,x) | x.gsub(pattern,replacement) |
strsplit(x,split) | x.split(split) |
rubyのa.join("")に対応するのは、Rのpaste(a,collapse="")かもしれない。