備忘録 as vet.

日々のアイデア、疑問など備忘録的に書きます。Scienceが好きです。

Macでcsvファイルを扱うときに生じる文字化けの対処-Rを使った方法

Maccsvファイルを扱うときは、いつも文字化け問題に悩まされる。

これは、MacWindowsのEncodingが異なることに起因する。

ググると様々な記事で解決策を紹介しているが、たいてい(というか全部) csvファイルをテキストエディターで開いてEncodingをUTF16 or Shif-JISに変えてからexcelで開け、という方法が書かれている。

ただし上記の方法を試しても文字化けが治らなかったり、encodingをShift-JISにそもそも変えられない(∵ファイルに特殊文字を含む)事がある。

そういうときに、いままで僕はGoogle Driveにファイルをアップロードして文字化け解消を行っていた。 Google DriveはEncodingの許容範囲が広いのか、文字化けがクリアになることがほとんど。 欠点としては、大きい容量のファイルを扱う場合は、そのままではファイルを受け付けない(めちゃくちゃ重くなる)のでちまちまファイルを分割してアップロードして、ダウンロードして結合して、、という面倒な方法を取る必要がある。

なんとかならないかと四苦八苦していたら、いい方法を見つけてしまった。

それがRのencoding機能を使う方法。 tidyverseのread_csv関数を使ってencodingを変更すればよい。 詳細は以下

library(tidyverse)
read_csv("~/Library/CloudStorage/Dropbox/"XXXXXX.csv", locale = locale(encoding = "cp932"))

ここで大事なのが、encodingの設定を"shift-jis"ではなく、"cp932"にすること。 よくわからないけど、cp932はshift-jisの拡張版みたいなものらしくこちらを使う。 (shift-jisに指定するとエラーが出てしまった)

これによってめでたく素早く文字化けを解消することができました。備忘録。