#WindowsではRの作業ディレクトリの設定が面倒
Rで作業する際には、データやスクリプトがあるフォルダを作業ディレクトリとして設定した方が何かと便利である(=絶対パスで呼び出す必要がなくなる)。
Rstudioを利用している場合であれば、スクリプトを開くと自動で作業ディレクトリが設定される。
一方、デフォルトのGUI(Rgui.exe)を使う場合には、「ファイル」>「ディレクトリの変更」から移動する、setwd
にフォルダの絶対パスを渡す、choose.dir
を使うなどの少々面倒な方法で設定するしかない。
#パスを渡す場合
setwd("C:/Users/hoge/Documents")
#choose.dirを使う場合
setwd(choose.dir()) #このあとGUIで指定する
もっと楽に作業ディレクトリを設定したい!
※ 通常の設定方法についてはこちらの記事やこちらのページでくわしくまとめられています。
#指定のフォルダを作業ディレクトリとしてRを起動する方法
##① Rdataファイルを使う
Rdataファイルをダブルクリックで開くと、その場所を作業ディレクトリとしてRが起動し、Rdataファイル内のデータが読み込まれる。
これを利用し、空のRdataファイルを配置することで指定のフォルダを作業ディレクトリにしてRを起動させる。
###1. 空のRdataファイルを作成する
- Rを起動する
- 適当なフォルダを作業ディレクトリに設定する
- 以下のコマンドを入力する
save(list = NULL, file = "dir.Rdata")
これで指定したフォルダに「dir.Rdata」が作成される。
###2. 作成された「dir.Rdata」を、自分が作業ディレクトリに指定したいフォルダに移動する
###3. dir.Rdataをダブルクリックし、Rを起動する
こちらもgetwd
で確認すると、指定のフォルダが作業ディレクトリになっていることがわかる。
なお作業中のワークスペースを保存することでRdataファイルを作る手もあるが、これは個人的には非推奨。理由は、以前の作業におけるオブジェクトがそのまま引き継がれて混乱が起きるため(例えば、d
やi
などの名前がかぶりやすいオブジェクトは、上書きしない限り以前のものがそのまま呼び出される危険性がある)。
データ自体を明確に使いまわししたい時(例えば、一区切りした作業を再開したい時や再計算に時間がかかる時)以外は、スクリプトからオブジェクトを再生成した方が良いと思う。
##② アドレスバーを使う
2020年3月4日更新:この方法だとバージョンアップグレードの際に混乱が起きるので、①の方をおすすめします。詳しくは後述。
###0. Rgui.exeまでPathを通す
詳しいパスの通し方はこちらを参照。
- 自分の環境でRgui.exeが格納されているフォルダを確認し、フルパスをコピーする
- インストール時に設定をいじっていないのであれば、「C:\Program Files\R\R-[バージョン名]\bin\x64」になっているはず
- 「スタート」>「設定」で「設定の検索」から「環境変数を編集」を探す
- 「~のユーザー環境変数」の「Path」を選択し、「編集」をクリック
- 「新規」をクリックし、先ほどコピーしたフォルダのフルパスを追加する(元々入っていたパスを消さないように注意)
※**環境変数の変更は自己責任で。**他のユーザーも使えるようにするならシステム環境変数に追加する
設定はこれで完了。
###1. 作業ディレクトリとして指定したいフォルダをエクスプローラで開く
###2. Alt+Dを押して、「Rgui」と入力してEnter
アドレスバーをクリックして「Rgui」でもOK。
目的のフォルダを作業ディレクトリとしてRguiが起動する。
getwd
で確認すると、指定のフォルダが作業ディレクトリになっていることがわかる。
参考:エクスプローラから直接Powershellを起動する方法
ただしこの方法を使った場合、新しいバージョンのRを入れたときには再度環境変数を変更する必要がある。
また前のバージョンのパスを残しておくと、そちらの「Rgui.exe」が呼び出されてしまうので注意。
(2020年3月4日追記)
これで指定したフォルダでRを楽々起動できるようになる(はず)