StatsBeginner: 初学者の統計学習ノート

初学者が統計学、機械学習、R、Pythonの勉強の過程をメモっていくノート。

今更ながら、Rのアンインストール・インストール・初期設定の復習(Macの場合)

備忘のためのメモが必要

 Rのバージョンアップをしようとしたんですが、Macの場合はアップデート用のコマンドが使えないらしいので、アンインストールして新バージョンを再インストールをすることにしました。
 Rのインストール方法なんて解説サイトが山ほどあるのでこの記事をみるメリットはあまりないですが、自分がやることになった時に自分で書いたブログ記事を見直すのがたぶん一番早いので、まとめておくことにします。
 初期設定一式については、新しくパソコンを買った時とかに一通りやり直さなければならない場面もあるかもしれないですし。
 研究室ではみんなSPSSを使ってる(私もSPSSを使い始めた)ので、学生にインストールを教えることは当面なさそうですが、Rの何かのパッケージを使わないとできないことが出てきたら,教える場面もあるかもしれません。


 なお今回の環境としては、OS X SierraでR 3.4.0を使っていたのをアンインストールして、R3.4.2を入れ直しました。

アンインストール

 今回は試しに、関連ファイルを全て削除しようと思いました。が、後述するように、今回「完全アンインストール」を目指したものの、結局「完全」ではなかった模様です。
 ちなみにメジャーアップデートでなければパッケージは残しておいて引き継ぐことができると思いますが、今回は削除しました。


 まず、削除ツールのApp Cleanerを使った場合、消す候補として見つけてくれるのは以下のものでした。

  • "/Application/R.app"
  • "/var/db/BootCaches/"の下にハッシュ値みたいな長い名前のディレクトリがあって、その中にある"app.org.R-project.R.playlist"(私は長い名前のディレクトリが複数あって両方とも"app..."を含んでいた。)
  • "/var/db/receipts/"の中に入っている、R関連の.plistファイルと.bomファイルいくつか。(.pkgでソフトをインストールした際に管理用に生成される、設定ファイルとバイナリ一覧ファイルらしい。)
  • "/var/folders/"の下を掘っていったところに"org.R-project.R"というディレクトリがあり、この下に何かグラフィック関係の設定ファイルのようなものがいくつか入っている。


 とりあえず、全部消す。
 その他、自分で探して消すものとしては、以下で良いんじゃないでしょうか。

  • "/Library/Frameworks/R.framework"
  • "/usr/bin/R"
  • "/usr/bin/Rscript"
  • "/usr/local/bin/R"
  • "~/library/R/"


 バイナリについては、どこ(とどこ)に置かれているかが、人によって違ったりするのかな。
 "~/library/R/"には標準パッケージ以外に自分がインストールしたパッケージが入ってるんですが、ディレクトリの中はバージョンごとに分かれており、これは消さずに残しておけば、Rのマイナーアップデートであればインストール済みパッケージを全部引き継げると思います。今回は消しましたが。


 あとは、Rでデフォルトのworking directoryに設定していた場所に、

  • ".Rprofile"
  • ".Rapp.history"
  • ".RData"
  • ".Rhistory"


 があると思うので、消す。
 .Rprofileも、新たにRをインストールするときに日本語表示の設定とかで再利用するでしょうから、残しておくのがいいと思いますが、とりあえず消しました。


 さて、これで全部かなと思ったのですが、じつは再インストールした後にRを起動してFileの「Open Recent(最近使ったファイルを開く)」を触ってみたら、アンインストール済みのRで以前開いたスクリプト等が候補として表示されました。ということは、まだ何かキャッシュ的なもの?を消し切れてないようです。現時点では何なの分かりませんでした、というか調べてないです。
 またそもそも、今回は関連「ファイル」を順に削除していったわけですが、他のアプリケーションやOSが使っている設定ファイル等に書き込まれたR関連の情報は触ってないわけなので、その辺は後の課題とします。
 

再インストールと初期設定

 つぎに改めてRをインストールして初期設定をします。
 なおRを入れる前に、XQuarzの最新版がインストールされてるかは確認が必要です。古かったらアップデートする。
 インストール方法は省きますが、CRANのサイトで配布されている最新のインストーラをダウンロードしてインストールすればいいでしょう。


 インストールが済んだらRを起動して、Preferences(環境設定)で、

  • Default CRAN mirrorをJapanに設定(べつにどこ使っても良いといえば良いんでしょうけど)
  • "Rapp.history"を読み込むかどうかの設定ができますが、とりあえず読み込むでいい気がします。これは何かというと、たぶん、コンソール上でカーソルキーの上を押したりして過去の入力を辿っていくときに、前回までにRを立ち上げていたときの履歴も辿れる(その時と同じコマンドが打てる)ということかな?と思います。私はあまり使いませんが。
  • "Save workspace on exit from R"は私はNOにしてます。計算に膨大な時間がかかるような分析は滅多にしないし、スクリプトをアタマからケツまで保存してれば分析は再現可能で、ワークスペース自体を保存する必要はないので。


 という設定をしました。
 また、Rのコンソールやグラフ中で日本語の文字を表示させることがある場合、その設定が必要になります。(Mac版の)Rで日本語を扱うためにやることは主に2つあって、ロケールの設定と.RProfileの設定です。前者は人によって不要な場合もある思います。


 まずRを起動した時に、

During startup - Warning messages:
1: Setting LC_CTYPE failed, using "C" 
2: Setting LC_COLLATE failed, using "C" 
3: Setting LC_TIME failed, using "C" 
4: Setting LC_MESSAGES failed, using "C" 
5: Setting LC_MONETARY failed, using "C" 
[R.app GUI 1.70 (7434) x86_64-apple-darwin15.6.0]

WARNING: You're using a non-UTF8 locale, therefore only ASCII characters will work.
Please read R for Mac OS X FAQ (see Help) section 9 and adjust your system preferences accordingly.


 というような注意書きが出ている場合、ロケールの設定(posix標準設定の"C"をOSから引き継いでいる?)がUTF-8を使うものになってないということですが、このままだとコンソール上に日本語の文字列を出力することができません(文字コードの羅列になる)ので、設定変更が必要になります。なおロケール(locale)というのは言語と地域にまつわる設定のことです。ローカルの間違いではありませんw
 その方法については解説ページ(リンク)がありますが、ターミナルから変更する場合は、

defaults write org.R-project.R force.LANG en_US.UTF-8


 と打ちます。なお、Rのコンソールからsystem()関数で("")の中に同じコマンドを入力することでも変更できます。
 これは具体的には、"~/Library/Preferences/org.R-project.R.plist"というXMLファイルの中の、

<key>force.LANG<key>
<string>■■■■</string>


 という箇所の■■■■に書かれる情報を変更してることになります。
 「en_US.UTF-8」のところは、「ja_JP.UTF-8」にすると、コンソール上の警告文などが日本語になります。
 個人的には、何かエラーが出て原因や解決策を知りたいと思った時、英語の警告文をGoogleで検索したほうが情報が多いので、英語設定にしています。ここを英語設定にしていても、UTF-8になってさえ入れば、コンソールやグラフ上に日本語を表示することは可能です。


 次に、グラフに日本語の文字を出したい場合はこれだけでは足りなくて、定番ですが「.RProfile」(テキストで作成してworking directoryに置いておけば、起動時に読み込まれる)に設定を書き込む必要があります。
 その内容は、参考ページ(リンク)のものを丸ごと拝借してコピペでいけました。この内容は将来、Rの仕様が変わったりすると、修正が必要になるかもしれませんが、とりあえず現行版ではいけました。これの内容をきちんと自分で理解できてないのが気持ち悪いので、後ほど勉強しなければと思っております。
 なお今回、原因がよくわかりませんが、.Rprofileをテキストファイルから作成したらどうもRが起動時に読み込んでくれてない様子だったので、試しにRのコンソールから、

prof <- "
ここにコードをコピペ
"
cat(prof, file=".Rprofile")


 というふうに作成したら行けました。何でかはよくわかりません。前はいけたんですけど。