日々のつれづれ

不惑をむかえ戸惑いを隠せない男性の独り言

RからExcelファイルを作る

誰かにデータを渡すとき、どうしてもExcelのお世話になる。
これまではタブ区切りの拡張子を変えて対応していたけど、ファイル数が増えると嫌われる。

write.table(x,file="hoge.xls",sep="\t",col.names=NA)
#良く使う、ごまかし構文

みんな考えることは同じなんだろう。
いくつかパッケージがある。
でも、私の環境ではエラーが出て、今ひとつ使い勝手が良くなかった。xlsReadWriteパッケージは見つからないし。

RでExcelのファイルを読む †
(RODBC,RODBC(ODBCデータベース・アクセス)パッケージ中のオブジェクト一覧を参照) RODBCを使い、ODBC経由でEXCEL(.xls)のデータを読み込みます。
これで日本の多くの統計情報(なぜかEXCELでの提供が多い)が扱えると思います。

http://www.okada.jp.org/RWiki/?R%A4%C7EXCEL%A4%CE%A5%D5%A5%A1%A5%A4%A5%EB%A4%F2%C6%C9%A4%E0

でも、最近、検索しなおすと、xlsxパッケージを見つけた。
Excel2007に対応しているらしい(私は使ってないが)。しかも、ワークシートの追加もできる。

xlsx: Read, write, format Excel 2007 and Excel 97/2000/XP/2003 files
Provide R functions to read/write/format Excel 2007 and Excel 97/2000/XP/2003 file formats.

CRAN - Package xlsx
library(xlsx)
write.xlsx(x,file="hoge.xlsx",sheetName="hogesheet")

write.xlsxがとても便利と気がついた。今のところ、全角にも対応しているようで、これからは重宝しそう。

WriteXLSパッケージなるものもあるようだが、Excel2003対応らしい。まわりにExcel2007が増えてきたので、あえて試してないけど。

WriteXLS: Cross-platform Perl based R function to create Excel 2003 (XLS) files
Cross-platform Perl based R function to create Excel 2003 (XLS) files from one or more data frames. Each data frame will be written to a separate named worksheet in the Excel spreadsheet. The worksheet name will be the name of the data frame it contains or can be specified by the user.

CRAN - Package WriteXLS