私の現在の環境は、Windows10(英語OS)だが、マイクロソフトアカウントは日本語設定になっているので、OneDriveと同期しているディレクトリのパスに必ず日本語が入る(例; C:\Users\xxx\OneDrive\ドキュメント)。
デフォルト設定ではRのライブラリはこのディレクトリ内に作られる。
しかし日本語をRstudioが認識しないせいで、このディレクトリが見つからないというエラーが起き、パッケージが全くインストールできないという致命的な事態が発生する。
私はRも英語設定にしているので、日本語設定にすればこういう問題は起きないのかもしれない。
でも、エラーメッセージが日本語だと、「解決法を探すためにエラーメッセージをコピペして検索」が英語でできなくなる。
プログラミングに関するエラーは英語で検索したほうが圧倒的に解決策が見つかりやすいので、日本語のエラーメッセージは不便極まりない。
なんとしてもRは英語設定のままパッケージをインストールせねばならない。
ようやく見つけた、この問題に対するRstudioの公式回答↓
「.Rprofileって拡張子のファイルを作って、そこにこのコード(↓)をコピペして、デフォルトワーキングディレクトリに保存してね」というお答え。
# Place this in a file at '~/.Rprofile' to ensure it's sourced on startup |
|
|
.First <- function() { |
|
# RStudio-specific startup |
|
if (!is.na(Sys.getenv("RSTUDIO", unset = NA)) && |
|
Sys.info()[["sysname"]] == "Windows") |
|
{ |
|
# work around mis-encoded environment variables |
|
USERPROFILE <- Sys.getenv("USERPROFILE") |
|
HOME <- file.path(USERPROFILE, "Documents", fsep = "\\") |
|
R_USER <- HOME |
|
R_LIBS_USER <- file.path(HOME, "R", "win-library", getRversion()[1, 1:2], fsep = "\\") |
|
Sys.setenv( |
|
HOME = HOME, |
|
R_USER = R_USER, |
|
R_LIBS_USER = R_LIBS_USER |
|
) |
|
# update library paths |
|
if (!isTRUE(file.info(R_LIBS_USER)$isdir)) |
|
dir.create(R_LIBS_USER, recursive = TRUE) |
|
.libPaths(R_LIBS_USER) |
|
} |
|
} |
あら簡単。
実はこの問題、OSを再インストールしたりPCを買い替えたりするたびに発生してた。
そしてそのたび昔解決した時の解決法を忘れて調べるけど、いろんなところでいろんな解決法が紹介されてて、その全部が有効な解決法じゃなかったりして、今まで調べるのめっちゃめんどくさかった。
なのでブログに残しとく。
今までは、devtoolsパッケージを使ってGithubからダウンロードしたパッケージのインストールで失敗することが多かったけど、上の方法を使ってるおかげなのか、CRAN以外からでも全く問題なくインストールできる。
すばらしい。
日本語フォント使ってプログラミングしてると、そこここでエンコーディング失敗とか、パスに日本語入ってる問題が起きすぎるので、データもアカウントもできる限り日本語を排除してアルファベットのみで入力している。
言語設定問題はWordとかでもよく悩まされてる。
英語と日本語の板挟みから逃れられる日は来るのか。。。