トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン 印刷

文字コード

auditR

読み込むデータファイルの文字コードを調べる。

RはデフォルトでUTF-8を使うことになっている。 文字コードについては、システムが標準としている文字コード、Rが使う文字コード、入出力するデータの文字コードの3つを意識しなければならない。

システムが標準とするのは、Linuxの場合はUTF-8、そしてWindowsの場合はShift-JIS(CP932)である。 RやRStudioを使う場合には、UTF-8が標準となっているので、windows系のOSを使う場合には、ときおり不具合が発生する場合がある。 RStudioでのProjectの設定は、Project Global OptionとProjectごとにそれぞれデフォルトの文字コードが設定できるようになっている。

データを読み込む際にもこの問題が起こる。 システムデフォルトの文字コードを使うようになっているため、文字コードの相性が合えば良いが、そうでないときには読み込み自体に失敗する。特に、業務系のシステムから取得したデータをWindowsで処理して入手した場合、どちらのコードでファイルが生成されているかは注意したい。

なお、読み込むファイルの文字コードを推定する関数がある。

 tidyverse::guess_encoding("filename")

これによって各種文字コードが確率で示される。最も高い確率の文字コードをそのまま読み込みに使う。

 read.delim("filename", sep = "|", stringsAsFactor = F, header = T, fileEncoding = "UTF-16LE")

文字コードを強制的に変更する

読み込み時にエンコードを指定しても、読み込んだ結果生成されるオブジェクトが、部分的に文字コードが異なるなど中途半端にエンコードされていないことがある。

 Encoding(data$field)

で化けているところの文字コードを確かめる。そして、

 Encoding(data$field) = 'shift-jis'

などで強制的にエンコード指定すると、文字化けが直ることがある。

なお使える文字コードは、iconvlist()で調べる。


Last updated 2018-09-11 | auditR (c) N.Nawata