慶應義塾大学 商学部・商学研究科

新保一成 研究室

開発と環境の経済分析...

R / RStudio Known Problmes & Other FAQs

日本マイクロソフト社製Microsoft Windowsに固有の問題

毎年多くのゼミ生/授業履修者の前に立ちはだかる,以下の問題について説明します.

  • 管理者権限の壁
  • マルチバイト文字の呪縛

管理者権限の壁

学生から受ける質問のうち,以下のケースが「管理者権限の壁」に分類されます.

  1. R/RStudioのインストールはできるがRStudioを起動できない.
  2. R/RStudioのインストールはできるがパッケージのインストールができない.RStudioのインストール時にRのパッケージがインストールされるので,この症状だけが出るのはちょっと不思議なのですが.
  3. RStudio自体のインストールができない.

2番目および3番目のケースについては,「マルチバイト文字の呪縛」に書いた「アカウント名/ユーザー名にマルチバイト文字を使っているケース」の「2. 別アカウントを作成する」に示した対処法しかないようです.

R/RStudioが起動できない

R/RStudioを「管理者権限で実行する」ように設定してください. デスクトップまはたスタート画面上のショートカット(アイコン)を右クリックし,「管理者として実行」を選択して起動します. 常に管理者として実行するようにプロパティに設定することができます.おそらくプロパティに設定するのが便利だと思います. インターネット上の情報などを参考にしてください.

マルチバイト文字の呪縛

Working Directory,R Script,データのパスにマルチバイト文字が含まれているとR/RStudioが正常に動作しません. 日本語キーボードの半角モードで入力する英数字,記号は数が少なく,コンピュータ上で1バイトの領域を使って表現することができます. しかし,日本語,中国語など語数の多い言語は複数バイトを使わないと表現することができません. これをマルチバイト文字と呼びます.マルチバイト文字を表現する方法には多々あります. その中でもUTF-8というシステムを使うのが現在の世界標準で,Mac OSや様々なUNIX ,あるいは海外のMicrosoft WindowsではUTF-8を採用しています. ところが日本マイクロソフト社製のMicrosoft Windowsでは日本独自の規格であるShift_JISというシステムを採用しているために, 海外で作成された様々なソフトウェアで日本語化されていないものを使うときに多々問題が発生しています. そのソフトウェアがよっぽど儲かるものならいざ知らず,70億人を超える世界人口のうち1億2千万人しか存在しない日本人のために, 仕様もわからないShift_JISによって日本語化を施してくれるありがたい開発者なんていやしません. R/RStuidioのようなフリーソフトウェアではUTF-8を使えますから,マルチバイト文字を使いたいならUTF-8でエンコーディングしてくださいということになります.

このような世界的な状況のもとで,アカウント名/ユーザー名やインターネットのURLにマルチバイト文字を使わないというのは,常識中の常識です. Keioアカウントでもマルチバイト文字は使えませんね. 残念ながらこの「いろはのい」も完全に浸透しているとは言えないようで,ゼミ/授業の履修者の中にもアカウント名/ユーザー名にマルチバイト文字を使ってしまっている人が数多くいるようです.

アカウント名/ユーザー名だけでなく,R/RStudioが対象にするパス上にマルチバイト文字が含まれているだけで問題が生じます.たとえば, R/RStudoのWorking Directoryに「ゼミ」やら「計量経済学各論」などといったフォルダ名を付けてしまっているケースです.

アカウント名/ユーザー名にマルチバイト文字を使っているかいないかによって問題の対処法が全然違います. まずは,軽症のアカウント名/ユーザー名にマルチバイト文字を使っていない場合から始めます.

アカウント名/ユーザー名にマルチバイト文字を含まないケース

あなたのアカウント名/ユーザー名はYukichiとします.

たとえば,計量経済学各論の演習で用いるSQLiteデータベースファイルwpp2015.dbが以下のパス上にあるとします. C:¥Users¥Yukichi¥Documents¥計量経済学各論¥wpp2015.db

この場合,R/RStudioでRSQLiteパッケージをロードしてdbDrive関数とdbConnect関数でwpp2015.dbに接続できたように見えても, dbGetQuery関数でテーブルからデータを引き出すときに,「そのようなテーブルはない」というエラーになります.

エラーの原因は,「計量経済学各論」フォルダのフォルダ名にマルチバイト文字を使っていることです. マルチバイト文字を含まない名前,たとえば,'econometrics'などと変更して,wpp2015.dbのフルパスが C:¥Users¥Yukichi¥Documents¥econometrics¥wpp2015.db となれば,問題は解決します

アカウント名/ユーザー名にマルチバイト文字を使っているケース

この場合,以下の2つの対処法が考えられます.Windows OSのレジストリの扱いに自信がない方は2番目の方法を採用すべきと思います. あなたのアカウント名/ユーザー名が「諭吉」であるとします.

  1. アカウント名/ユーザー名を変更する

    アカウント名/ユーザー名を変更するためには,「諭吉」フォルダへのシンボリック・リンクを張り,最終的にレジストリのUsersフォルダ名を変更するという手続きが必要です. この説明を読んで,なるほどと思った人は自己責任でやってみるとよいでしょう. 変更方法の詳細は,インターネットで検索すれば見つけることができます. この説明で,「シンボリック・リンクって何?」,「レジストリって何?」という反応の方にとっては,アカウント名/ユーザー名を変更するリスクはかなり高いと思います. 誤った操作をしてPCが起動できなくなってしまうリスクはゼロとは言えません. 次に紹介する対処法を取るのがよいかと思います.

  2. 別アカウントを作成する
    1. R/RStudioに限らずマルチバイト文字がパス上にある場合に,正常に動作しないプログラムがあることが報告されています. そのようなプログラムを使うためのアカウントをPC上に新たに作成します. たとえば,Yukichiというアカウントを別に作り,R/RStudioを使うときには,Yukichiとしてログインするということになります.
    2. このアカウントの¥Users¥Yukichiの配下にRとRStudioをインストールします. RとRStudioのインストール時にインストール・フォルダを指定できるので, 間違ってもあらかじめ指定されている「Program Files」を選択せずに, ¥Users¥Yukichi¥Rや¥Users¥Yukichi¥RStudioにそれぞれのプログラムをインストールしてください.
    3. たとえアカウント名にマルチバイト文字を使わなくても,フォルダ名に使ってしまっては意味がありません. Yukichiアカウントでは,フォルダ名,ファイル名に一切のマルチバイト文字を使わないようにしましょう.

その他のFAQ

[Q]
データが見つかりません.
[A]
  • 先ずは,ファイル名がスペルミスなどなく正しく入力されているかを確認してください.
  • ファイル名が正しい場合,データのパスに誤りがあるケースが考えられます. 多くの場合みなさんは,データを読み込む関数にファイル名だけを与えています. その場合,現在のWorking Directory配下にデータファイルがないと「データがない」というエラーになります.
    1. getwd()で現在のWorking Directoryを確認してください.
    2. その結果,Working Directoryが正しく設定されていないことがわかったならば,
    3. RStudioのメニューバーからSessionを選択し,Working Directoryを設定し直してください.
  • 上に「マルチバイト文字の呪縛」で説明したように, フォルダ名に日本語などのマルチバイト文字が含まれている場合には,同様のエラーになります.
[Q]
PDFのコマンドをコピペしたのに,実行するとエラーになる
[A]
PDFのコマンドをコピー & ペーストしたときに,一部の記号が文字化けするケースがあります. 特に,ダブル・クォーテーションマークが全角になっているケースが報告されています.