Windowsではユーザー名に日本語を利用することができます。
その場合、ホームディレクトリは日本語の名前になるのですが、
これが厄介な問題を起こすことがあります。
プログラミングに慣れていると、
ファイルパスに日本語が含まれているとエラーが出ることがあることを、
知っている人も多いと思います。
Rでも、ファイルパスに日本語を含んでいるとエラーが出てしまいます。
つまり、日本語のユーザー名だと、
Rを使うことが出来なくなる or エラーが多発することになります。
そこで、日本語のユーザー名を使いつつも、
Rを使う方法について紹介します。
主な症状
日本語のユーザー名を利用していると、
パッケージのインストール等を行うときに、
ユーザーローカルにパッケージをインストールしようとして、
「不正なマルチバイト文字があります」などのエラーが生じます。
これは、パッケージのインストール先を、
ユーザーのホームディレクトリ下にしているので、
ファイルパス中にユーザー名、
つまり、日本語を含んでしまっているために生じるエラーです。
解決方法1: 英語の別ユーザーを作成する
日本語ユーザー名のアカウントにこだわりがない場合は、
英語ユーザー名の新しいアカウントを作成するのが、
最も手っ取り早い解決方法です。
ただし、新しいアカウントを作成するので、
環境、データ等の引き継ぎは別途行う必要があります。
何としても、今使っている日本語ユーザー名で、
Rを動かしたいという場合は、2つ目の解決方法を実行しましょう。
以下では、英語ユーザー名の新しいアカウントを作成する手順を説明します。
- 「Win + R」でファイル名を指定して実行を開く
- 「control」を入力し、「Enter」キーを押す
- 「ユーザーアカウント」をクリック
- さらに「ユーザーアカウント」をクリック
- 「別アカウントの管理」をクリック
- 「その他のユーザーをこのPCに追加」をクリック
- 「このユーザーのサインイン情報がありません」をクリック
- 「Microsoftアカウントを持たないユーザーを追加する」をクリック
- 英語のアカウント名とパスワードを入力する
途中でアカウント名の変更という選択肢がありますが、
アカウント名を変更したとしても、
ホームディレクトリの名前は変わらないので、
問題の解決にならないことを注意しましょう。
解決方法2: 日本語ユーザー名のままファイルパスを英語化する
新しいアカウントを作成するとデータの移行が面倒であったり、
日本語のアカウント名にこだわりがある人もいるでしょう。
その場合は、今使っている日本語のアカウント名のまま、
Rを使いたいということになります。
ただし、ファイルパスに日本語が含まれる限りエラーになるので、
アカウントは日本語名のまま、
ファイルパスを英語に変えることが必要になります。
これは主に、下の二つによって達成します。 - ホームディレクトリに英語の別名をつける - システムデフォルトのホームディレクトリを別名側に変更する
あくまでホームディレクトリには別名をつけるだけなので、
指しているディレクトリ自体は同一のものになります。
そのため、データなどもそのまま引き継がれます。
そして、システムのデフォルトでは英語の名前で、
ホームディレクトリを参照することになるので、
R側でも、同様に英語の名前でホームディレクトリを参照するようになり、
ファイルパス中に日本語が含まれることを回避できます。
それでは、具体的な手順を下に示しておきます。
別名のホームディレクトリを作成する
まずは、日本語のホームディレクトリに、
英語の別名をつけます。
これはシンボリックリンクと呼ばれる、
一種のショートカットのようなものを作成することで行います。
- 「Win」ボタンを押してメニューを開く
- 「cmd」を入力する
- 「コマンドプロンプト」を右クリックして「管理者として実行」を選択
- 次のコマンドを実行する
mklink C:¥Users¥[英語の別名] /D C:¥Users¥[日本語のユーザー名]
これで、Usersディレクトリ中に英語のシンボリックリンクが作成されます。
すでにUsers中にある名前は使えないので注意しましょう。
ここで設定した英語の別名は次の設定でも必要になるので、
覚えておきましょう。
システムデフォルトのホームディレクトリを変更する
上で英語のシンボリックリンクが作成できれば、
あとは、これをデフォルトのホームディレクトリに設定するだけです。
これは、以下の手順で行います。
- 「Win」キーでメニューを開く
- 「regedit」と入力する
- 「regedit」を実行する
- 下の場所に移動する
コンピューター¥HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Windows NT¥CurrentVersion¥ProfileList
- ProfileImagePathに変更したいユーザー名を含むサブディレクトリを探す
ProfileList中には複数のサブディレクトリ
(画像ではS-1-5から始まるディレクトリ)
があり、選択肢しているディレクトリの中身が右側に表示されています。
ProfileImagePathのデータ欄がC:¥Users¥[日本語のユーザー名]
であるようなサブディレクトリを探しましょう。 - 変更するProfileImagePathをダブルクリック
- 値のデータを
C:¥Users¥[英語の別名]
に変更してOKをクリック
以上で、デフォルトのホームディレクトリを変更できます。
再起動後 R を起動する
上の二つが終われば、コンピューターを再起動し、
Rを起動します。
また、ホームディレクトリ変更されたかどうかは、
コマンドプロンプトで確認できます。
次のコマンドを実行して見ましょう。
echo %HOMEPATH%
これで、設定した英語の別名のディレクトリが表示されればOKです。
まとめ
日本語のユーザー名で R を使う方法についてまとめました。
Webでよく見つかるのは、1つめの解決策ですが、
結局、別のアカウントを使うことになります。
どうしても、日本語のユーザー名のまま使いたいという場合は、
2つめの解決策になりますが、
あまり詳しく説明されていないことが多いので、
ここにまとめておくことにしました。