Machine Morning

機械学習やWebについて学んだことを記録しています。

R studioでファイルを読み込む際の文字コードエラー

MacのRStudioでcsvファイルを読み込もうとすると以下のようにinvalid multibyte stringというエラーが出てくる。

> df <- read.csv("filename.csv", header=T, sep=",")
Error in make.names(col.names, unique = TRUE) : 
  invalid multibyte string at '<94>N<8c><8e>'

これは文字コードのエラーであるが、MacのRStudioでは読み込むデフォルトの文字コードUTF-8になっている。実際にRStudio上で対象のファイルを開いてみると、文字化けしていることがわかる。デフォルトの文字コードを変更することによる解決策が見つからなかったので、ここではファイルの文字コードを直接変更して対処する。

nkfで対象のファイルの文字コードを確認する。

$ nkf --guess [filename]
Shift_JIS (CRLF)

今回はShift-JIS(CRLF)であったので、MacのRStudioで読み込めるように、nkfでファイルをUTF-8に変換する。

$ nkf -w before_file.csv > after_file.csv

オプションの-wUTF-8に変換するもので、windowsの標準文字コードであるShift-JISに変換する場合は-sオプションと使う。

変換後のファイルはread.csv()で読み込むことができる。