複数のファイルをRで扱うときに、Shift_JIS方式になっていると文字化けしてしまいます。
そのため、すべてのファイルをUTF-8変換する必要があります。
年別のデータを扱うことが多くファイル名が連続しており、規則的な処理になるためなんとか一気に処理できないかと思っていました。
Rでまとめてエンコードを変換することが難しそうだったので、pythonでやってみました。
例は、2007.csv, 2008.csv,…, 2014.csvなどという名前のcsvファイルをShift_JIS方式から、UTF-8方式へと変換するやり方です。
import codecs for i in range(2007, 2015): # ↑2007から2014までをiに代入 shiftjis_csv_path = '/Users/ファイルの場所'+ str(i)+'.csv' # UTF-8 ファイルのパス utf8_csv_path = '/Users/ファイルの場所'+ str(i) +'.csv' # 文字コードを utf-8 に変換して保存 fin = codecs.open(shiftjis_csv_path, "r", "shift_jis") fout_utf = codecs.open(utf8_csv_path, "w", "utf-8") for row in fin: fout_utf.write(row) fin.close() fout_utf.close()
隔年のデータ(例:1996年、1998年、…2014年、2016年)のときは以下です。
import codecs for i in range(998, 1008): # ↑2007から2014までをiに代入 shiftjis_csv_path = '/Users/moritatomohiro/Google drive/R/ginident/data/dentist/JIS/'+str(2*i)+'.csv' # UTF-8 ファイルのパス utf8_csv_path = '/Users/moritatomohiro/Google drive/R/ginident/data/dentist/'+ str(2*i) +'.csv' # 文字コードを utf-8 に変換して保存 fin = codecs.open(shiftjis_csv_path, "r", "shift_jis") fout_utf = codecs.open(utf8_csv_path, "w", "utf-8") for row in fin: fout_utf.write(row) fin.close() fout_utf.close()
以下を参考にしました。
http://qiita.com/nskydiving/items/c900c27042bcd11517ee