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
を読み取ろうとするので、ファイルが存在しないエラーが返される
これ知らないとハマる。
- 回避策はこちらを参照。
Last updated 2024-11-06 | auditR (c) N.Nawata