技術

R言語をはじめる

TwitterでR言語についての話題が流れていたのを見かけてなんとなくやってみようかと思った。

R言語というと何年も前から名前だけは知ってるけど、ベクトル処理に特化した言語という以外は何も知らない。
それこそコンパイラ方式なのかインタプリタ方式なのか、その辺りのプログラム名(コマンド名)は何なのかさえ知らない。

でもベクトル処理に特化した言語なら当然ベクトル処理が簡単に書けるんだろうし、CPUやGPU等のプロセッサも今まで以上にさらにコア数が増えていく方向で性能が強化されていくであろう事を考えると、何か将来性がありそうな気がする。
それに、手続き型言語の設計に関数型言語を利用するが如く、最終的にC++やCUDAでベクトル処理を行うプログラムを書くにしろ、事前にR言語で設計的な事ができたら色々よろしいのではないかと思う。
まぁ何も知らないのでこういう用途に使えるかは全く分からないけど。

こういう全く知らないものに関して調べ始めるにはWikipediaは役に立つ。
ということでとりあえずR言語のページについて見てみる。
R言語 – Wikipedia

だいぶ充実してる感はあるが、今回は手元のMacでR言語のサンプルコードをとりあえず実行出来るところまで行ければいいなと思ってるので、それに必要そうなところだけ見てみる。

まずはサンプルコード。
上記のページには以下のような円周率をモンテカルロ法で近似する計算の例が載っている。

s<-100000
x<-runif(s)
y<-runif(s)
sum(x^2+y^2<=1)*4/s

代入を<-と書くところ(=でもいいらしいが推奨はされないらしい)と、runifでベクトルが生成されるという事、ベクトル(の要素)同士の演算を簡単に書けるという事を知ると、特に難しくは無さそうである。
まぁサンプルコードなのでそんなに難しいわけはないのだが。

次にWikipediaによるとRはインタプリタ言語のようである。
そのインタプリタのプログラムはThe Comprehensive R Archive Networkで配布されているようなので、そこからMac版の現時点における最新と思われるR-3.0.2.pkgをダウンロードしてみる。
なんかGUI版のもあるみたいだが、ややこしくなりそうなので今回はまだやめておく。
(CUI版でもインストール時にR GUI 1.62がデフォルトで入るようなのでGUI版でなくてもGUIを使ったプログラムは書けそうである。)

インストールが終わったらターミナル.appを立ち上げておもむろに大文字でRとタイプしてエンターを押す。
そしたら以下のような感じでRのインタプリタが立ち上がった。

R version 3.0.2 (2013-09-25) -- "Frisbee Sailing"
Copyright (C) 2013 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin10.8.0 (64-bit)

R は、自由なソフトウェアであり、「完全に無保証」です。 
一定の条件に従えば、自由にこれを再配布することができます。 
配布条件の詳細に関しては、'license()' あるいは 'licence()' と入力してください。 

R は多くの貢献者による共同プロジェクトです。 
詳しくは 'contributors()' と入力してください。 
また、R や R のパッケージを出版物で引用する際の形式については 
'citation()' と入力してください。 

'demo()' と入力すればデモをみることができます。 
'help()' とすればオンラインヘルプが出ます。 
'help.start()' で HTML ブラウザによるヘルプがみられます。 
'q()' と入力すれば R を終了します。 

> 

まさかの日本語である。
マルチバイト文字にもきちんと対応してそうな予感がする。

上記のサンプルコードを入力してみたら以下のようになった。

> s<-100000
> x<-runif(s)
> y<-runif(s)
> sum(x^2+y^2<=1)*4/s
[1] 3.14468
> 

きちんと動いてるようだ。

インタプリタを終了させるためにq()とタイプしたらworkspace imageなるものを保存するか訊かれた。

> q()
Save workspace image? [y/n/c]: n

よく分からないので今回はとりあえずnにしといた。
Pythonの対話モードに似てるがRのインタプリタは多少開発環境的な機能も持ってるようである。
また、q()とタイプする代わりにCtrl+Dでも終了出来た。

とりあえず今回はここまで。
今のところ特に異質な感じはそんなにしないのでちょっと安心した。
もう少し複雑なプログラムを独自に考えて書いてみると「R言語分かった」と思えるようになるだろう。

コメントを残す

メールアドレスが公開されることはありません。



※画像をクリックして別の画像を表示

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください