在 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
包适用范围更广,但需要安装该包。