如何让 R 将工作目录识别为其工作目录?

How to get R to recognize your working directory as its working directory?

提问人:Dan Goldstein 提问时间:9/9/2009 最后编辑:Bill the LizardDan Goldstein 更新时间:4/6/2021 访问量:86264

问:

我在几台机器上在 Windows 下使用 R。

我知道您可以从 R 脚本中设置工作目录,如下所示

setwd("C:/Documents and Settings/username/My Documents/x/y/z")

...但这破坏了脚本的可移植性。必须反转所有斜杠也很烦人(因为 Windows 会给你反斜杠)

有没有办法在特定的工作目录中启动 R,这样你就不需要在脚本级别执行此操作?

R 路径 安装 工作目录

评论


答:

3赞 Christopher DuBois 9/9/2009 #1

如果您使用的是 Emacs/ESS,这不是问题。导航到 R 脚本所在的目录,打开它,然后启动 R ESS 进程。此时会弹出一个 R 控制台,其中当前目录是 R 的工作目录。

如果你还没有转换到 Emacs/ESS,我推荐它。(虽然为了防止火焰战争,我也注意到 Vi 用户也有类似的选择。

希望能有所帮助。

6赞 Shane 9/9/2009 #2

您可以使用环境变量。这可以与 和 一起使用。例如:Sys.getenv()Sys.setenv()

> Sys.setenv(R_TEST="testit")
> Sys.getenv("R_TEST")
  R_TEST 
"testit" 

如果在脚本中发送了变量,则应该能够从内部访问它,然后调用该输出。setwd()

评论

0赞 eykanal 1/14/2012
以这种方式设置的环境变量是否会在 R 会话中持续存在?完全重新启动计算机怎么样?
0赞 Shane 1/17/2012
不,但如果你把它添加到你的 .Rprofile 文件。或者,您可以从操作系统获取系统变量(例如,在 Windows 中,您可以将值存储在环境变量中)。
16赞 Marek 9/9/2009 #3

您应该将 R(R.lnk 文件)的快捷方式复制到所需的文件夹。然后在“属性”(鼠标右键 - 最后一个选项)中>删除字段中的任何内容在第二个选项卡中(“快捷方式”?如果使用此快捷方式启动 R,则工作目录将是快捷方式所在的目录。

我没有英文版的 Windows,所以我不确定字段名称,但它们应该很容易找到。

类似的问题在 R-windows-faq 中:

2.5 如何运行它?

2.10 如何将不同项目的工作空间保存在不同的目录下?

2.14 什么是 HOME 目录和工作目录?

在 2.14 中提到

工作目录是启动 Rgui 或 Rterm 的目录,除非快捷方式属性的“Start in”字段给出了快捷方式。

评论

0赞 wolfsatthedoor 4/11/2018
那么对于Mac呢?
0赞 Marek 4/11/2018
@robertevansanders我没有使用Mac的经验。这个问题是关于 Windows 的。在 RStudio 及其项目的时代,问题已经过时了。
5赞 Rob Hyndman 9/9/2009 #4

将工作区保存到所需的目录,然后只需从 Windows 资源管理器打开工作区即可。

3赞 Ehva 9/9/2009 #5

只是一个细节:与其像你说的那样反转斜杠,不如添加另一个反斜杠。其中两个 \\ 的工作方式与其中一个 / 的工作方式相同。这至少使它变得容易一些。

评论

0赞 PavoDive 11/11/2014
+1 Ehva :当您使用普通的旧 R 并且只想设置一次工作目录时,这是最简单的方法。
4赞 Robert 1/2/2010 #6

我把下面一行放在我的脚本前面,它允许我在计算机上工作。

setwd(path.expand("~/path/to/working/directory/") )

其中 ~ is = 添加到您的主目录。

Sys.setenv(HOME = "path")或者可以同时设置主目录。Sys.setenv(R_USER = "path")

就我而言,我在几个 Windows 盒子上工作,每个盒子都有相当不同的目录结构,但通过正确设置主目录,我可以在计算机之间同步代码并让它们在每台计算机上正确运行,因为我运行我的 R 项目的地方具有相似的目录结构。

-1赞 Thumperska 3/12/2010 #7

将 R gui 的快捷方式放入所需的目录中。单击鼠标右键并查看快捷方式属性。删除“Start In”条目,然后单击“确定”。当您从此快捷方式启动 R gui 时,默认目录将是您从中启动的文件夹。将此快捷方式复制/粘贴到您想要的任何位置。

评论

0赞 Marek 3/12/2010
你的答案和我的答案有什么区别?
2赞 Brian Mack 2/6/2013 #8

对于 Ubuntu:
将以下命令插入到您的文件中(通常在您的主目录中):
.Rprofile

setwd(Sys.getenv("PWD"))

现在,默认工作目录将是从中启动 R 的任何目录。请记住,还可以通过将工作区映像保存为计划启动 R 的任何位置(在搜索之前的启动源)在不同的目录中设置默认工作区。.RData.Rprofile.Rdatacwd

评论

0赞 beroe 10/10/2018
这是我一直在为OSX寻找的答案。(我在我的文件中使用命令来查找调用的目录,而不是在我的......Rscript.Rprofile
1赞 user2788076 8/21/2015 #9

为了将 R 工作目录设置为我正在使用的 R 脚本的当前目录,我总是使用命令和 的组合,如下所示:getwd()setwd()

path <- getwd() setwd(path)

setwd(getwd())

如果您想了解更多信息,请参阅此文章

干杯

[]的

0赞 Dr Nisha Arora 4/6/2021 #10

若要在 R Studio 中设置工作目录,请执行以下操作:请参阅此处的详细幻灯片和屏幕截图。

  1. 使用 setwd():Windows 用户需要将反斜杠 '' 替换为正斜杠 '/' 或双反斜杠 '\' 您可以使用查找和替换(快捷键:Ctrl+F)来执行前者
  2. 另一种选择:转到会话 - >设置工作目录 - >选择工作目录并浏览要设置为工作目录的文件夹,单击打开
  3. 最快的方法(我最喜欢的)使用快捷键“Ctr+Shift+H”(在Windows系统上),浏览要设置为工作目录的文件夹,点击打开

若要在 R Studio 中设置永久工作目录(当不在项目中时),请执行以下操作:请参阅我的快速视频: https://youtu.be/hMjzO4bAi70

转到工具 --> 全局选项 --> R 常规 [基本] --> 默认工作目录(不在项目中时) 浏览要设置为工作目录的文件夹,单击“应用”和“确定”

enter image description here

然而,组织工作的有效和更好的方法是创建项目并使用版本控制。