トップ 一覧 検索 ヘルプ RSS ログイン 印刷

getwdの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!getwd()

現在の作業ディレクトリ(フォルダ)を返してくる関数。

!RStudioでRのgetwd()を使うときの注意事項
!RStudioでRのgetwd()を使うときの注意事項

RStudioのプロジェクト機能は、プロジェクトフォルダの配下でフォルダを管理しておけばよいので便利だが、今回ややトリッキーなことに気がついた。

RstudioのConcole画面で、

 getwd()

を入れるとプロジェクトディレクトリが返ってくる。

しかし同じプロジェクトでディレクトリを切ってRMarkdownファイルなどを作って、RMDファイルの中でコマンドとしてgetwd()を入れると、プロジェクトではなくそのRMDファイルがあるディレクトリを返してくる。

たとえば、currentProjectプロジェクトにdata, script, outputというディレクトリを切って、scriptディレクトリの中にRMDを保存してRMDの中で、

 readr::read_rds( str_c(wd, "data/", "savefilename.rds"))

とやると、Rのコンソールでは期待したとおりに動作して、

 currentProject/data/savedFiename.rds

にあるファイルを読みに行くが、RMDのなかで動かしたコマンドは、

 currentProject/script/data/savedFile.rds

を読み取ろうとするので、ファイルが存在しないエラーが返される

これ知らないとハマる。

:回避策はこちらを参照。:

*https://niszet.hatenablog.com/entry/2018/05/04/080000
*https://niszet.hatenablog.com/entry/2018/07/14/100744