トップ 一覧 検索 ヘルプ RSS ログイン 印刷

文字コードの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!読み込むデータファイルの文字コードを調べる。

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()'''
なお使える文字コードは、'''iconvlist()'''で調べる。