日付;2022/06/11(土)、2022/10/2(日)訂正
最近、MacはIntel以外のCPUになってしまったし、今仕事で使っているソフトウェアで必要なものは、Image J、Rくらいしかない。場合によってはたまにPythonなんかも使うが、そういうときは大体Linuxを使ってしまう。なので、職場ではWindows11のPCを買ってもらった。そして、最近Rstudioをインストールしたのたが、そのときになんとも不快な警告が出てきて、それを直すためになんかおかしな努力をしてしまったので、それを記録しておこうと思う。
出た警告(Warning)
以下の画像にある警告がでた。
Warning message:
In normalizePath(path.expand(path), winslash, mustwork):
path[1]=”C:/Users/XXXX/OneDrive/??????:ファイル名、ディレクトリ名、またはボリューム ラベル構文が間違っています。
というか、間違ってねぇし。このソフトが理解できねぇだけだろうが。なんだ、こっちが悪いみてぇな言い方は。ぶっ壊すぞ。
これが、例えばパッケージをインストールしたときとか、事ある毎にでてくる。もうフザケている。これがあるせいでWindowsを使いたくなくなってしまった。明らかに日本語を認識していない。
で、このエラー(というか警告)をGoogleで調べてみると、どうやらRが日本語を理解できていないためらしい。これを直すためには、環境変数っていうものから日本語を省く必要がある。こういうことがあると思ったからRstudioを英語でインストールしたのに、結局、こういった根本的なエラー(というか警告)がでるとは。これだからWindowsは嫌いである。
余談だが、これはRではなくRstudioをインストールして起動した後に出るようになるエラーのようだ。Rstudioを使わないのであれば、このエラーは出なかった。R自体は日本語を認識しているらしい。Rstudioが日本語を理解できていないようだ。
これを直すためには、まずWindows側の環境変数の設定にアクセスする必要がある。
R上での環境変数の確認
まずは、以下のコードで設定されている環境変数を確認する。
Sys.getenv()
これで、その時点でRが読み込んでいる環境設定を確認することができる。おかしい場所に?????がついている。以下の画像のように、?????はHOMEとR_USERで出ていることがわかる。念の為に、他にもおかしなところがないかチェックするのが良いような気がする。
新しくHOMEとR_USERというディレクトリを日本語が入らなさそうな場所に作る
次に、日本語が入りそうもない場所でHOMEとR_USERというディレクトリーを新しく作成する。以下の画像では、Cの直下にまずRというディレクトリを作り、その中にHOMEとR_USERを新しく作る。
環境変数を直す
まず、「設定」から「システムの詳細」を検索する。
そうすると、以下の「システムのプロパティ」というところに行くことができる。
ここの「環境変数(N)」に行く。
システム環境変数(S)ところの「新規(W)」をクリックする。
次に、「新しいシステム変数」というウィンドウが表示されるので、変数名をそれぞれHOMEとR_USERを入力し、変数値は、その下にあるディレクトリの参照(D)から作成したHOMEとR_USERを選んでOKをクリックする。
そうすると、最初の画像のあるような警告は出なくなる。全く、面倒くさいものだ。
その他のコツ
R上での環境変数の設定
Sys.setenv(R_USER="C:\\Users\\XXXXX\\R\\R_USER")
といれる。一応述べておくが、バックスラッシュ (\)が日本語の¥マークである。それに、\と認識させるためには\\と2つ入れる必要がある。しかし、どうもこれは一時的らしく、これをやったところでRstudioを起動するごとに同じようにエラー(というか警告)がでるので、ほとんど意味がない。
R起動時に読み込まれるファイルはRprofile.site
Rprofile.siteに、例えばlibrary(tidyverse)とか、自分の解析で絶対に使うライブラリなんかを書いておけば、R起動時に読み込んでくれる。ただし、ここにいっぱい何かを書くと、どうしても途中で読み込みがスタックするので、程々にする必要があるらしい。このRprofile.siteは、.Rprolifeと同じ様なファイルなんだろう。これはなんでもいいからテキストエディタで開いて直接編集できる。
Rcmd_environって何??
このRcmd_environは、おそらく.Renvironと同じだと思うのだが、どうもインターネットにかかれているように、ここが最初に読まれている様な感じではなかったと思うのだが、どうなんだろうか。よくわからん。とにかく、ここも必要に応じて変えることもできる。正直に言えば、自分は開発者ではなく、エンドユーザーなので、このあたりを深く知る必要は無いように思っている。