sink関数:Rの出力をCSVやテキストファイルとして保存する

sink関数は、Rのコンソールに出力された解析結果をテキストファイル(.txt)やCSVファイル(.csv)として保存することができる関数です。

これを使えるようになると、解析結果を保存することができとても便利です。

基本的な使い方

1.テキストファイルとして保存する

テキストファイルとして保存したい場合は、sink("ファイル名.txt") と入力します。

保存したい内容を、その下に入力し、sink()で閉じます。

sink("sample.txt")  # 空のテキストファイル”sample.txt”を作成
"Hello World"       # ファイルに送る内容を入力
sink()                     # 入力終了

上記の3行のコードを全て選択してRun(実行)をします。

Rstudioのスクリプト画面

上記のコードにより、”Hello World”がテキストファイルとして保存されます。

sink(“任意のファイル名”)sink()はセットになっていて、鍵括弧「 」のようなものです。再度sink()を実行することで、出力内容をファイルに送る動作が停止します。


ディレクトリ(保存先)の確認

sink()のコードを実行(Run)できたら、ディレクトリにファイルがあるか確認しましょう。

ディレクトリとは、Rで解析を行う際にデータを出し入れするファイルのことです。

ディレクトリの場所がわからない場合はgetwd()で確認することができます。

実際にディレクトリを確認してみると、”sample.txt”という名前のテキストファイルが作成され、その中に”Hello World”の文字列が入力されています。


CSVファイルとして保存する場合

CSVファイルとして解析結果を保存する場合は、sink("ファイル名.csv") と入力します。

sink("sample.csv")  
"Hello World"       
sink()                    

先ほどの「.txt」の部分を「.csv」に変更するだけです。

こうすると、カンマ区切りのデータとして出力されます。


出力結果を書き加える

同じファイル名(今回の場合は、”sample.txt”)で繰り返し実行すると、出力されたデータは上書きされてしまうため、注意が必要です。

もしも出力結果を上書きせずに付け加えたい場合は、 sink("sample.txt", append=TRUE)と入力します。

sink("sample.txt", append=TRUE)  
"Hello World 2"     
sink()                  

計算結果(解析結果)をファイルに送る

先ほどの”Hello World”のような文字だけでなく、様々なデータを出力することが可能です。

例えば、以下のような計算式を入力してみます。

sink("sample.txt")           # 空のテキストファイル”sample.txt”を作成
1+2+3+4+5+6              # 出力したい内容を入力
sink()                          # 入力終了

すると、1+2+3+4+5+6の計算結果がテキストファイルとして出力されます。


”.txt”とは、テキストファイルの拡張子のことです。
拡張子とは、ファイルの種類のことで、他にもcsv(カンマで値を区切ったデータ),pdf(PDFファイル),jpg(画像)などがあります。

参考

https://stat.ethz.ch/R-manual/R-devel/library/base/html/sink.html

コメントを残す

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