最終更新: rabbi_zakki 2017年12月31日(日) 02:20:34履歴
write.csv や write.table での表ファイルの出力、あるいはsinkを使ってのテキストファイル出力などはRでよく行うファイル出力である。
UNIXとwindowsをまたいでの出力ファイルの利用などマルチプラットフォームに対応した状況を想定している場合や、webでの利用を想定している場合には、UTF-8などの文字コードで出力したいはずだ。
Rではfile関数を利用して、ファイル名のほかに文字コードなどを指定したファイルコネクションなるものを使って、そういった文字コード出力を制御するやり方が一般的である。
やり方は次の通り。
あるいはsinkを使ってのテキストファイル出力ならば以下の通り。
なお、read.csvなどでUTF-8のファイルを読むときは、オプションに fileEncoding = "UTF-8" をつける。
UNIXとwindowsをまたいでの出力ファイルの利用などマルチプラットフォームに対応した状況を想定している場合や、webでの利用を想定している場合には、UTF-8などの文字コードで出力したいはずだ。
Rではfile関数を利用して、ファイル名のほかに文字コードなどを指定したファイルコネクションなるものを使って、そういった文字コード出力を制御するやり方が一般的である。
やり方は次の通り。
filename <- "C:/hogehoge/test.csv" #ファイルネームはフルパスで con<-file(filename,encoding="UTF-8") #ここでいったんfile関数を利用してencodingオプションで文字コードを指定したファイルコネクションなるものをつくる write.csv(data, file = con) #たとえばwrite.csvならばfileオプションに直上でつくったconを代入する
あるいはsinkを使ってのテキストファイル出力ならば以下の通り。
filename <- "C:/hogehoge/test2.txt" #ファイルネームはフルパスで con<-file(filename,encoding="UTF-8") #ここでいったんfile関数を利用してencodingオプションで文字コードを指定したファイルコネクションなるものをつくる sink(con) #conをsink print("abc xyz 123") #出力したい文字列 sink() #閉じる
なお、read.csvなどでUTF-8のファイルを読むときは、オプションに fileEncoding = "UTF-8" をつける。
コメントをかく