マイムの部屋

社内SEが,興味をもったことを書いていきます.

シェルスクリプトからRでグラフ作成(Ubuntu,R,シェルスクリプト)

今回はシェルスクリプトでRを呼び出し,グラフを作成することにします.
データをグラフ化するシステムを作るとすごく便利になんじゃないかと思って調べ見ました!!
シェルスクリプトからRを呼び出すためには,以下の二つが必要らしいです.
  1. シェリスクリプトファイル(ここでは,plot.sh)
  2. Rで実行するファイル(ここでは,plot.R)
それぞれのファイルは以下のように書きました.

・plot.sh

#!/bin/sh
# $1:入力ファイル名,$2:出力ファイル名
R --vanilla --slave  --args $1 $2 < plot.R

・plot.R

args <- commandArgs(trailingOnly = T)
x=read.csv(args[1],header=FALSE)
png(args[2])
plot(x,type="l")
dev.off()
入力ファイルのデータは,以下のようなn行2列と想定しています(それ以外でやっていない).

入力データ例

0,71
1,46
2,38
3,42
4,35
5,42
6,44
7,63
8,424
9,871
10,893
11,86
12,160
13,172
14,593
15,104
16,114
17,113
18,89
19,175
20,146
21,142
22,310
23,587

実行例

実行例として,以下のコマンドを打ってみる.
$ ./plot.sh 入力ファイル名 出力ファイル名
これで作成されたグラフは,以下のようになります. 2015-06-1.png
なんとかできました.よかったよかった(⌒-⌒; )

参考サイト