R programming 日本語表記エラー

Rprogrammingにおけるエラー集シリーズの日本語表記問題です

皆さんはこのように日本語が文字化けしてしまった事はありませんか?

もう何が書いてあるか分かりません

こちらの対処法についてです
恐らく日本人初、つまり人類初のエラーなのではないかと自負しています(解説サイトがなかったので)

目次

まず最初の対策

初歩的かつ多くの方に有効なのが、デフォルトのテキストエンコーディングをUTF-8に変更する事です

RStudioの[Tools] > [Global Options] > [Code] > [Saving]で「Default text encoding」が「UTF-8」に設定されていることを再確認してください

こちらのDefault text encodingという欄のChangeを押してUTF-8を選択しましょう

多くの方の日本語読み込みエラーの原因がこれで解決します

getOption(“encoding”)
こちらをRスクリプトで打ってUTF-8であれば問題なく変更できています

しかし今回の僕は解決しませんでした

ChatGPTに聞くと


Rが起動する際、.Rprofileファイルを読み込むことでユーザー設定を適用します。このファイルは複数の場所に存在する可能性があり、Rは特定の順序でこれらのファイルを探します。具体的には、Rはまずホームディレクトリの.Rprofileを探し、次に現在のプロジェクトのディレクトリにある.Rprofileを探します。どちらのファイルも存在する場合、プロジェクトディレクトリの.Rprofileが優先して読み込まれます。

ホームディレクトリとプロジェクトディレクトリの.Rprofileの確認方法

  1. ホームディレクトリの.Rprofileを確認:
    • Windowsの場合、ホームディレクトリはC:\Users\<ユーザー名>\です。ここで<ユーザー名>はあなたのWindowsのユーザー名です。
    • Mac/Linuxでは、ホームディレクトリは/Users/<ユーザー名>/(Mac)または/home/<ユーザー名>/です。
    • ファイルエクスプローラー(Windows)やFinder(Mac)、またはファイルマネージャー(Linux)を使って、このディレクトリに.Rprofileファイルが存在するか確認してください。このファイルは隠しファイルになっていることがあります。
  2. 現在のRプロジェクトのディレクトリの.Rprofileを確認:
    • RStudioで現在開いているプロジェクトのルートディレクトリに.Rprofileファイルが存在するか確認してください。プロジェクトのディレクトリは、プロジェクト名の隣にあるRStudioのタイトルバーに表示されています。または、RStudioの右下にある「Files」タブを使用してプロジェクトディレクトリ内を探索できます。

これを設定すれば解決するとまず教えてくれるのですが、おそらくこれは無意味です
Global optionからCode、EncodingをUTF-8に変更する方法で事足ります

僕のエラーの原因は?

読み込みファイルのコーディングがUTF-8になっていない事が原因でした

以下の画像のように、読み込む対象のテキストファイルを見てみるとエンコードがANSIとなっています

こちらをUTF-8に変更する事で解決します

この画面にたどり着く方法がこちらです

Windows

  • ファイルを右クリックし、「メモ帳」などのテキストエディタで開くを選択します。
  • メモ帳でファイルを開いた状態で、「ファイル」メニューから「名前を付けて保存」を選択します。
  • 「エンコーディング」のドロップダウンリストを確認することで、現在のファイルのエンコーディングを見ることができます。

macOS

  • Terminalを開き、fileコマンドを使用してファイルのエンコーディングを確認します。
  • コマンドは以下のようになります: file -I <ファイル名>
  • このコマンドはファイルのMIMEタイプとエンコーディングを表示します。

要するにファイルをエンコードUTF-8にして保存しなおすイメージですね
これで僕の問題は解決しました

なぜ日本語エラーが起きてしまったか

よくある「何もしていないのに壊れた」という状態です
往々にして何かはしています
1週間前までは普通に使えていました
原因は定かではありませんが今回僕が行った事をリストアップします

  • Rをアップデートした(R4.3.2)
  • Rstudioをアップデートした(Version: 2023.12.1+402 | Released: 2024-01-29)
  • data.table::freadの読み込み関数を使った

僕が検証した限りですが、Read.csvを使っても同じようにエラーが出たので、Rのアップデートに原因があるかもしれません、知らんけど

パソコン詳しくないので有識者の方いましたら教えてください…

タグ: ,