前回や前々回は R に触れましたが、そもそも R の情報はインターネットに豊富にありますし、多少古い情報もあるとはいえ検索した方が早いでしょう。
筆者はグルー言語として局所的に R を利用することが多いので、他の処理との連携を意識して、自分用のメモを兼ねて R を使ったファイル I/O 周りについてまとめます。
入出力ファイル
構造化されたデータを読み書きするためには次のような関数があります。
入力
外部のファイルを開いて R のデータフレームに取り込みます。
関数 | 説明 |
---|---|
read.table | 半角スペースまたはタブで区切ったデータの読み込み |
read.delim | タブで区切ったデータの読み込み |
read.csv | カンマで区切ったデータの読み込み |
出力
R で処理した結果としてデータフレームをファイルに出力します。
関数 | 説明 |
---|---|
write.csv | カンマで区切ったデータの読み込み |
他にもありますが基本は CSV 出力で事足りるでしょう。
画像ファイル
R の情報を掲載しているサイトによってはインタラクティブシェルからそのままプロットした図表を閲覧したり、あるいは pdf に出力したりしていますが、特にレポーティングのことを考えるとまず画像ファイルに出力するのが良さそうです。
.png ファイルに出力する
プロットする前に、あらかじめ png 関数で出力情報を定義しておきます。
png("image.png", width = 480, height = 480, pointsize = 12, bg = "white", res = NA)
plot(x,y)
dev.off()
.jpg ファイルに出力する
画像ファイルの形式が異なってもやることは基本的に一緒です。
jpeg(filename = "graphic.jpg", width = 480, height = 480,
pointsize = 12, quality = 100, bg = "white", res = NA)
R による関数の利用
汎用的なコードは関数にまとめて外部ファイルに置きたくなります。
関数定義
R では関数の定義を次のようにおこないます。
# 関数を定義する
some_function <- function (x, y) {
# 加算結果を含めたベクトルを返却
return (c(x, y, x+y))
}
# 一度定義した関数はビルトインな関数と同様に使えます
some_function(1, 2)
#=> [1] 1 2 3
外部ファイルの読み込み
# 外部ファイルを読みこめば関数の定義も読み込まれます
source('some_function.R')
> some_function(3, 4)
[1] 3 4 7
外部ファイルの実行
R そのものを外部ファイルから呼んで実行するにはリダイレクトを利用します。
$ R --no-save --no-restore < some_function.R
まとめ
R でファイル入出力をする方法についてまとめました。他の処理と連携する場合には特に必要となるでしょう。