Rプログラミング入門(3)
普通にコマンドプロンプトを使いたい!
Rのコンソール上でなくて、Rのソースコードをテキストエディタで書いて、コマンドプロンプト(とかCygwinのコンソール)上でプログラムを動かしたい!という人もいると思うので、そちらも説明しておきます。
まずは、RのバイナリのPathを設定しておきましょう。普通にインストールしたなら、"C:\Program Files\R\R-2.9.0\bin"だと思いますので、コントロールパネル→システム→詳細設定→環境変数でPATHという変数の最後にセミコロン";"をつけて、その後ろに上記のPathを付け加えてやります。
次にコマンドプロンプトを開いて"Rscript"と入力して、Usageが表示されればOKです。
Rscript file.R
でプログラムが実行できます。
今更ながら演算子・制御文
注意点だけ簡単に説明しておきます。
演算子
加算 | + |
減算 | - |
乗算 | * |
除算 | / |
は、まあ問題ないと思います。あとは、
べき算 | ^ |
剰余 | %% |
除算の商 | %/% |
剰余が"%"を2つ書かないといけないみたいです。商を求める演算子があるんですねー。
if文
大して問題なさそうですが、elseが行頭に来るとなんかエラーが出るみたいです。これはイケてない(;´д`)
if( ... ) hoge() else fuga() # これはエラー
if( ... ) hoge() else fuga() # これはOK
if( ... ) { hoge() } else { fuga() } # これはエラー
if( ... ) { hoge() }else { fuga() } # これはOK
for文
たとえば1から5までを表示するとき
for( i in 1:5 ) cat(i,"\n")
みたいに書きます。範囲はリストとかでも良いみたいなので
for( i in c(1,2,3,4,5) ) cat(i,"\n")
と書いても同じ結果になります。
それ以外
詳しくはR プログラミング Tips 大全とかを見れば良いです。
サンプル
prog3-0.R
n <- scan("stdin") cat("n=",n,"\n") if( n>10 ){ cat("n>10\n") }else{ cat("n<=10\n") } for( i in 1:n ) cat(i,"\n")
これを実行して、結果を確かめてください。
注意
上記のプログラムを実行して、適当に数字を入力した後にEnterを押してもプログラムが止まったままだと思います。「入力が終わったよ!!」というシグナルを送らなければならないので、数字を入力してEnterを押した後、さらにCtrl+Zを押して、"^Z"と表示されたのを確認してからもう一度Enterを押してください。
直接入力じゃなくて、テキストファイルに入力データを書き込んでおく方法もあります。たとえば、input3-0.txtというファイルに以下の様に書き込んで保存しておきます。
5
次に、
Rscript prog3-0.R < input3-0.txt
という風に実行してやると良いです。