【问题标题】:How to get R to recognize your working directory as its working directory?如何让 R 将您的工作目录识别为其工作目录?
【发布时间】:2010-11-26 14:07:23
【问题描述】:

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

我知道您可以像这样在 R 脚本中设置工作目录

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

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

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

【问题讨论】:

    标签: r path installation working-directory


    【解决方案1】:

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

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

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

    2.5 How do I run it?

    2.10 How can I keep workspaces for different projects in different directories?

    2.14 What are HOME and working directories?

    在2.14中提到

    工作目录是启动 Rgui 或 Rterm 的目录,除非使用了快捷方式属性的“开始于”字段中指定的快捷方式。

    【讨论】:

    • 对于 Mac 来说呢?
    • @robertevansanders 我没有使用 Mac 的经验。这个问题是关于 Windows 的。在 RStudio 和它的项目时代,问题已经过时了。
    【解决方案2】:

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

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

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

    【讨论】:

    • 以这种方式设置的环境变量是否在 R 会话中持续存在?整台电脑重启怎么样?
    • 不,但如果你将它添加到你的 .Rprofile 文件中,它会。或者,您可以从操作系统获取系统变量(例如,在 Windows 中,您可以将值存储在环境变量中)。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      其中 ~ 是 = 您的主目录。

      Sys.setenv(HOME = "path")Sys.setenv(R_USER = "path") 都可以设置主目录。

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

      【讨论】:

        【解决方案5】:

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

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

        希望对您有所帮助。

        【讨论】:

          【解决方案6】:

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

          【讨论】:

          • +1 Ehva :当您使用普通的旧 R 并且只想设置一次工作目录时,这是最简单的方法。
          【解决方案7】:

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

          setwd(Sys.getenv("PWD"))
          

          现在您的默认工作目录将是您启动 R 的任何目录。请记住,您还可以通过将工作空间图像保存为.RData 来在不同目录中设置默认工作空间,方法是在您计划启动 R 的任何位置(在 cwd 中搜索 .Rdata 之前启动源代码 .Rprofile)。

          【讨论】:

          • THIS 是我一直在为 OSX 寻找的答案。 (我在我的Rscript 文件中使用该命令来查找调用的目录,而不是在我的.Rprofile...)
          【解决方案8】:

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

          path <- getwd() setwd(path)

          setwd(getwd())

          如果您想了解更多信息,请查看article

          干杯,

          []的

          【讨论】:

            【解决方案9】:

            在 R Studio 中设置工作目录: 请参阅带有屏幕截图的详细幻灯片here

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

            在 R Studio 中设置永久工作目录(不在项目中时): 请参考我的快速视频:https://youtu.be/hMjzO4bAi70

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

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

            【讨论】:

              【解决方案10】:

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

              【讨论】:

              • 你的答案和我的答案有什么区别?
              猜你喜欢
              • 1970-01-01
              • 2021-09-16
              • 2015-12-08
              • 1970-01-01
              • 1970-01-01
              • 2020-10-29
              • 2016-12-28
              • 2019-08-09
              • 1970-01-01
              相关资源
              最近更新 更多