目次(まとめ)
◾️ Rのプログラムを.R拡張子で保存する
◾️ 1つの手法は、R内でsource関数を使用する
◾️ もう1つの手法は、ターミナル上でRscriptコマンドを使用する
こんにちは、みっちゃんです。
今回の記事では「R言語を使ったプログラムを書いたけれど、一行ずつではなく、全体を実行させたい」という方向けに、Macのターミナル上で実行するための2つの手法を解説します。
Rのプログラムを.R拡張子で保存する
ここでは、以前の記事で解説した「樹形図」を書くRのスクリプトを題材に解説します。
樹形図をR上で実行するためには、以下のように実行する必要があります。
# $ R -q #Macのターミナル上でRを開く場合
> data <- as.matrix(mtcars)
> distant <- dist(data)
> cluster <- hclust(distant, method="average")
> plot(cluster, hang = -1)
このように、R上で実行しようとすると、実行するたびに、4行を書く必要があります。実行したい処理が複雑になるほど、行数が増えて、取り扱いが難しくなります。
そこで、以下のように、4行の処理をまとめたような、プログラムファイル(cluster.R)を準備します。拡張子は「.R」とします。
### cluster.R ###
data <- as.matrix(mtcars)
distant <- dist(data)
cluster <- hclust(distant, method="average")
plot(cluster, hang = -1)
1つの手法は、R内でsource関数を使用する
R内で、Rのプログラムファイルを実行したい場合には、以下のように、source関数を使って実行します。
> source("cluster.R")
これを実行すると、プログラムが実行されて、樹形図が表示されます。
また、以下のように、設定した変数を確認することもできます。
> objects()
[1] "cluster" "data" "distant"
このように、プログラム(cluster.R)の中で設定した変数が保持されているので、それらの変数を取り扱って、プログラムには書いていなかった追加の処理を実行することも可能です。
もう1つの手法は、ターミナル上でRscriptコマンドを使用する
Macのターミナル上で、Rのプログラムファイルを実行したい場合には、以下のように、Rscriptコマンドを使って実行します。
$ Rscript cluster.R
これを実行すると、プログラムが実行されます。
しかし、樹形図は表示されません。
デフォルトの状態では、"cluster.R" と同じフォルダに、"Rplots.pdf" というPDFファイルとして樹形図が保存されます。
ファイル名を指定したい場合には、以下のように、プログラムの最初と最後に追記すればOKです。
### cluster.R ###
pdf("cluster.pdf") # <----追加
data <- as.matrix(mtcars)
distant <- dist(data)
cluster <- hclust(distant, method="average")
plot(cluster, hang = -1)
dev.off() # <----追加
また、この場合には、プログラム内部で設定した変数を確認することはできません。
インターラクティブに処理をしたい場合には、Rの中で実行することをお勧めします。