でたぁっ 感動と失敗の備忘録

データ解析を担当することになったサラリーマンの備忘録

ファイル出力でちょっとハマった

 データフレームをファイルに出力する際にちょっとだけハマってしまった。
今までは前に作ったRコードをコピペしていたので無意識に、write.csv 関数を使っていた。それに気づかず、write.table 関数を書いていた。結果を見るとどうもおかしい。コンソールから help(write.table) でマニュアルを見ながら引数を加えた。結果こんな感じで個人的によく利用する形式になった。こんな時にしかマニュアル見ないので今のうちにメモ。

write.table(d, "write.txt", quote=F, sep="\t", row.names=F, col.names=T)

利用できる引数はこちら

quote TRUEの場合は二重引用符で囲まれる
sep デリミタを指定 タブは"\t"
row.names 行ヘッダーの出力有無 TRUEで出力
col.name 列ヘッダーの出力有無 TRUEで出力
na 欠損値に対する文字列
eol 行末の改行コード
dec 小数点に使用する文字
append TRUEは追記される FALSEは上書き
qmethod 文字列にある二重引用符に対処する方法を指定する文字列
fileEncoding エンコーディングを指定
ファイル名 "" 空白にするとコンソールに出力

以外に、ファイル名出力で空白にしとくとコンソールに出力されるので出力前の確認に便利かも。

ちなみに、今までよく使っていたcsv出力はこんな感じ。

write.csv(d, "write.csv")
write.csv(d, "write.csv", quote=F, row.names=F)

write.csv2 という関数もあるけど何が違うのだろう。。。
MASSパッケージには、write.matrix 関数もあるみたい。