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
オプションの-w
はUTF-8に変換するもので、windowsの標準文字コードであるShift-JISに変換する場合は-s
オプションと使う。
変換後のファイルはread.csv()
で読み込むことができる。