クイックノート

ちょっとした発見・アイデアから知識の発掘を

【R】日本語のユーザー名でRを使う方法

Windowsではユーザー名に日本語を利用することができます。

その場合、ホームディレクトリは日本語の名前になるのですが、
これが厄介な問題を起こすことがあります。

プログラミングに慣れていると、
ファイルパスに日本語が含まれているとエラーが出ることがあることを、
知っている人も多いと思います。

Rでも、ファイルパスに日本語を含んでいるとエラーが出てしまいます。

つまり、日本語のユーザー名だと、
Rを使うことが出来なくなる or エラーが多発することになります。

そこで、日本語のユーザー名を使いつつも、
Rを使う方法について紹介します。

主な症状

日本語のユーザー名を利用していると、
パッケージのインストール等を行うときに、
ユーザーローカルにパッケージをインストールしようとして、
「不正なマルチバイト文字があります」などのエラーが生じます。

これは、パッケージのインストール先を、
ユーザーのホームディレクトリ下にしているので、
ファイルパス中にユーザー名、
つまり、日本語を含んでしまっているために生じるエラーです。

解決方法1: 英語の別ユーザーを作成する

日本語ユーザー名のアカウントにこだわりがない場合は、
英語ユーザー名の新しいアカウントを作成するのが、
最も手っ取り早い解決方法です。

ただし、新しいアカウントを作成するので、
環境、データ等の引き継ぎは別途行う必要があります。

何としても、今使っている日本語ユーザー名で、
Rを動かしたいという場合は、2つ目の解決方法を実行しましょう。

以下では、英語ユーザー名の新しいアカウントを作成する手順を説明します。

  1. 「Win + R」でファイル名を指定して実行を開く
  2. 「control」を入力し、「Enter」キーを押す
    f:id:u874072e:20190305102759p:plain:w300
  3. 「ユーザーアカウント」をクリック
    f:id:u874072e:20190305102933p:plain:w300
  4. さらに「ユーザーアカウント」をクリック
    f:id:u874072e:20190305103009p:plain:w400
  5. 「別アカウントの管理」をクリック
    f:id:u874072e:20190305103154p:plain:w300
  6. 「その他のユーザーをこのPCに追加」をクリック
    f:id:u874072e:20190305103246p:plain:w300
  7. 「このユーザーのサインイン情報がありません」をクリック
    f:id:u874072e:20190305103401p:plain:w300
  8. Microsoftアカウントを持たないユーザーを追加する」をクリック
    f:id:u874072e:20190305103449p:plain:w300
  9. 英語のアカウント名とパスワードを入力する

途中でアカウント名の変更という選択肢がありますが、
アカウント名を変更したとしても、
ホームディレクトリの名前は変わらないので、
問題の解決にならないことを注意しましょう。

解決方法2: 日本語ユーザー名のままファイルパスを英語化する

新しいアカウントを作成するとデータの移行が面倒であったり、
日本語のアカウント名にこだわりがある人もいるでしょう。

その場合は、今使っている日本語のアカウント名のまま、
Rを使いたいということになります。

ただし、ファイルパスに日本語が含まれる限りエラーになるので、
アカウントは日本語名のまま、
ファイルパスを英語に変えることが必要になります。

これは主に、下の二つによって達成します。 - ホームディレクトリに英語の別名をつける - システムデフォルトのホームディレクトリを別名側に変更する

あくまでホームディレクトリには別名をつけるだけなので、
指しているディレクトリ自体は同一のものになります。
そのため、データなどもそのまま引き継がれます。

そして、システムのデフォルトでは英語の名前で、
ホームディレクトリを参照することになるので、
R側でも、同様に英語の名前でホームディレクトリを参照するようになり、
ファイルパス中に日本語が含まれることを回避できます。

それでは、具体的な手順を下に示しておきます。

別名のホームディレクトリを作成する

まずは、日本語のホームディレクトリに、
英語の別名をつけます。

これはシンボリックリンクと呼ばれる、
一種のショートカットのようなものを作成することで行います。

  1. 「Win」ボタンを押してメニューを開く
  2. 「cmd」を入力する
  3. コマンドプロンプト」を右クリックして「管理者として実行」を選択
    f:id:u874072e:20190305105244p:plain:h300
  4. 次のコマンドを実行する
mklink C:¥Users¥[英語の別名] /D C:¥Users¥[日本語のユーザー名]

これで、Usersディレクトリ中に英語のシンボリックリンクが作成されます。
すでにUsers中にある名前は使えないので注意しましょう。

ここで設定した英語の別名は次の設定でも必要になるので、
覚えておきましょう。

システムデフォルトのホームディレクトリを変更する

上で英語のシンボリックリンクが作成できれば、
あとは、これをデフォルトのホームディレクトリに設定するだけです。

これは、以下の手順で行います。

  1. 「Win」キーでメニューを開く
  2. 「regedit」と入力する
  3. 「regedit」を実行する
    f:id:u874072e:20190305121200p:plain:w300
  4. 下の場所に移動する
    コンピューター¥HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Windows NT¥CurrentVersion¥ProfileList f:id:u874072e:20190305121439p:plain
  5. ProfileImagePathに変更したいユーザー名を含むサブディレクトリを探す
    f:id:u874072e:20190305121626p:plain
    ProfileList中には複数のサブディレクト
    (画像ではS-1-5から始まるディレクトリ)
    があり、選択肢しているディレクトリの中身が右側に表示されています。
    ProfileImagePathのデータ欄がC:¥Users¥[日本語のユーザー名]
    であるようなサブディレクトリを探しましょう。
  6. 変更するProfileImagePathをダブルクリック
  7. 値のデータをC:¥Users¥[英語の別名]に変更してOKをクリック

以上で、デフォルトのホームディレクトリを変更できます。

再起動後 R を起動する

上の二つが終われば、コンピューターを再起動し、
Rを起動します。

また、ホームディレクトリ変更されたかどうかは、
コマンドプロンプトで確認できます。 次のコマンドを実行して見ましょう。

echo %HOMEPATH%

これで、設定した英語の別名のディレクトリが表示されればOKです。

まとめ

日本語のユーザー名で R を使う方法についてまとめました。

Webでよく見つかるのは、1つめの解決策ですが、
結局、別のアカウントを使うことになります。

どうしても、日本語のユーザー名のまま使いたいという場合は、
2つめの解決策になりますが、
あまり詳しく説明されていないことが多いので、
ここにまとめておくことにしました。

プライバシーポリシー