Rでデータ分析を行っていると、ふとしたときに作業中のデータフレームをエクセルやcsvファイルとして出力したくなるときがあります。
分析に不必要な列や行を削除した後にSPSSとかで分析の結果を確認したいときなどに作業中のファイルを出力できると便利です。
今回は、R上にあるデータをcsvファイル、Excelファイルとして出力する方法について紹介します。
csvファイルとして出力する方法
csvファイル(Comma-Separated values)とは項目間の区切りをカンマ(,)で区切ったテキストファイルのことです。
Excelで開くことができるため気づかない人も多いかもですが、中身は項目とカンマで区切られたシンプルな中身のデータとなっております。
項目とカンマしか含まれておらず、余計な装飾情報がないことから様々なソフトでデータのインポート・エクスポートを行うことができます。
Rでcsvファイルとして出力する方法は、write.csv( データフレーム名, "ファイル名.csv")
です。
例えば、Rにはサンプルデータとして「cars」というものがあります。
carsには、”speed”と”dist”という2つの変数について50個の観測値があります。
こちらを出力する際には、write.csv(cars, "carsデータ.csv")
と打つことで出力することができます。
注意すべき点として、”ファイル名.csv”という風に拡張子(.csv)を忘れずに入れましょう。
出力されたファイルは、Rの作業ディレクトリ上に作られます(コンソール上でgetwd()を実行することで確認できます)。
Excelファイルとして出力する方法
Excelファイル(.xlsx)形式で出力する方法もあります。
Excelファイルとして出力するメリットとしては、csvとは異なり、1つのファイル内にシートを複数作ることができる点です。
複数のシートを作成できるため、例えば、いくつかの分析結果を1つのファイル内の別シートに記録するということができます。
Excelファイルとして出力するための関数はRのデフォルトの関数群には含まれていないため、別途、openxlsxパッケージをインストールする必要があります。
install.packages("openxlsx")
でopenxlsxパッケージをインストールした後、library("openxlsx")
で使用できるようにしましょう。
複数のシートにデータを書き出す
Excelファイルとして出力するためには、openxlsxにあるwrite.xlsx()を使います。
基本的な使い方はwrite.csv()と同じですが、複数のシートに書き込む場合は、出力したい変数を一度リストとして代入して、そのリストをデータフレームの代わりに引数とします。
例として、1つ目のシートに先ほどのcars、2つ目のシートにiris(植物のアヤメに関するデータ)を持ったExcelファイルを出力してみましょう。
まず、それぞれの変数をsheetListという変数にリストとして代入します。
sheetList<-list("carsData"=cars, "irisData"=iris)
次に、上記のsheetListをwrite.xlsx()の引数として指定します。write.xlsx(sheetList, "carsDataとirisData.xlsx")
出力されたファイルは以下のように2つのシートを持っていて、それぞれにデータが入っているのがわかります。
※補足
build_cell_types_integer(classes = colClasses, n_rows = nRows) でエラー:
関数 ‘Rcpp_precious_remove’ はパッケージ ‘Rcpp’ では提供されていません
というエラーが返ってきた場合は、いちど、install.packages(“Rcpp”)で”Rcpp”というパッケージをインストール・library(“Rcpp”)で使えるようにしたあとに上記の命令を実行することで解決できると思います。
まとめ
今回は、Rでファイルの出力を行う方法として、csvファイルと.xlsxファイルで出力する方法についてまとめました。
・csvファイル:汎用性が高く、データの共有などを行う際に一般的に使用されるファイル形式
・xlsxファイル:openxlsxパッケージをインストールする必要はありますが、複数のシートを作ることができる
データフレームだけでなく、検定結果を代入することもできますので、自分にあった方法で出力すると良いと思います。
また、csvファイルやxlsxファイル形式だけでなく、スライドやドキュメント資料としてエクスポートすることもできます。
特にスライドへのエクスポートはRで作成したグラフを出力する際にかなり便利です。手順がいくつかあるため、詳細はまた別の記事で紹介したいと思います。