上記のようなcsvファイルをread.csvで開こうとしたら以下のようなメッセージが返ってきて、読み込めなかったときの対策
元ファイルは
e-Stat国勢調査、統計データ小地域を使用。
まずはシンプルにread.csvで読み込んでみる。
- 実行内容
read.csv(csvfile.csv)
- 結果
Error in type.convert.default(data[[i]], as.is = as.is[i], dec = dec, :
invalid multibyte string at '<8e>D<96>y<8e>s<92><86><89><9b><8b><e6>'
ナンケラーが返ってきて、読み込み失敗
shift-jis指定で開く
データの値に日本語が入っているので、エンコーディングを指定すれば良いと思いfileEncoding="shift-jis"
を追加してみる。
- 実行内容
read.csv(csvfile.csv,fileEncoding="shift-jis")
- 結果
一応、ファイルは読み込めるものの以下のようなWarning messageが。
Warning message:
In scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :
invalid input found on input connection csvfile.csv'
さらに元のcsvの列数は25700もあったのに、R上で列数を確認すると24245に減っていた。
CP932指定で開く
- 実行内容
read.csv(file_list[1],fileEncoding="CP932")
結論
shift-jisとcp932の詳しい違いは以下を参照
https://qiita.com/kasei-san/items/cfb993786153231e5413
shift-jisのcp932拡張版と言うことで、shift-jis
ではなくCP932
で指定する方が安心。