在 R Studio 中將當前檔案的位置設定為工作目錄
本文探討了將 R 的工作目錄設定為當前 .R
指令碼或在 R Studio 的原始碼窗格中開啟的 .Rmd
檔案的四種不同方法。在任何這些方法中都不需要使用者干預或互動。
這使我們可以僅使用檔名訪問我們可能儲存在同一目錄中的其他指令碼檔案或資料,而無需路徑。在本文中,資料夾和目錄這兩個詞可以互換使用。
使用 R Studio 的檔案關聯
通過右鍵單擊或雙擊 .R
或 .Rmd
檔案啟動 R Studio 時,它會將工作目錄設定為包含開啟檔案的資料夾。
這僅在以這種方式啟動 R Studio 時有效。如果 R Studio 已在執行,並且僅通過右鍵或雙擊開啟檔案,則工作目錄不會更改。
使用 R 專案檔案
我們可以建立一個新的 R 專案並將其與包含我們的 .R
指令碼或 .Rmd
檔案的資料夾相關聯。R Studio 將在該資料夾中建立一個 .Rproj
檔案。
當我們啟動 .Rproj
專案檔案時,R Studio 會將工作目錄更改為該資料夾。
使用 R Studio API 包獲取 R Studio 中當前儲存的檔案路徑
我們可以使用 rstudioapi
包中的 getSourceEditorContext()
函式來獲取當前儲存的檔案路徑。然後我們可以將其目錄的路徑設定為工作目錄。
要使用此功能,我們必須先安裝軟體包。
示例程式碼:
# Check the current working directory.
getwd()
# Install the rstudioapi package if it is not already installed.
install.packages("rstudioapi")
# Load the rstudioapi package.
library(rstudioapi)
# Get the name of the directory in which the current file is located.
cur_dir = dirname(getSourceEditorContext()$path)
# Change the working directory to the directory with the current file.
setwd(cur_dir)
# Check that the working directory has changed to the directory with the current file.
getwd()
使用 this.path
包獲取當前 R 檔案的路徑
最後,我們將使用 this.path
包來獲取當前儲存檔案的路徑。這種方法比前三種更通用;即使不使用 R Studio,它也可以工作。
方法是一樣的;我們將使用 this.path()
函式獲取當前檔案的路徑。然後我們將其目錄的路徑設定為工作目錄。
示例程式碼:
# Check the working directory.
getwd()
# Install the this.path package.
install.packages("this.path")
# Load the this.path package.
library(this.path)
# Get the directory from the path of the current file.
cur_dir2 = dirname(this.path())
# Set the working directory.
setwd(cur_dir2)
# Check that the working directory has been set as desired.
getwd()
參考
在此處瞭解 R Studio 工作目錄和工作區。要了解有關 R 專案的更多資訊,請檢視 R for Data Science。
rstudioapi
和 this.path
包的文件可在 CRAN 上找到。
まとめ
使用不同的技術,我們可以將工作目錄設定為包含當前 R 檔案的資料夾。檔案關聯方法和 R Project 方法在 R Studio 中很容易使用。
rstudioapi
方法要求安裝包。this.path
包適用範圍更廣,但需要安裝該包。