【问题标题】:Getting R to store the working directory for every session让 R 存储每个会话的工作目录
【发布时间】:2010-12-18 23:24:19
【问题描述】:

我在超级用户上问过这个问题,但有人建议我把它带到这里,因为有更多的 R 专家。

问题:

当我转到“文件”>“更改目录...”时,我必须继续导航到我的目录,这特别烦人。

有谁知道如何让 R 记住以前使用的目录?

【问题讨论】:

  • 尽管这更像是一个最终用户类型的问题而不是编程问题,但关于 R 的问题可能会得到更多更好的答案 1) 如果它们发布在 Stack Overflow 上,以及 2) 如果它们被标记为“R”。
  • 您总是希望它在同一个地方,这对我来说似乎很奇怪。通常,您从事的每个项目都有不同的目录。
  • 也许this question 会有所帮助。
  • 抱歉,我不记得将它从超级用户转移到 stackoverflow。谢谢大家的帮助!

标签: r directory


【解决方案1】:

我可能不会回答你的问题,因为它有点模糊,但有一些想法:

  1. 您可以将“我的目录”的位置存储在 R 的 .GlobalEnv 中,以便在您启动 R 时从那里开始。
  2. This article 讨论了如何让不同的工作目录对应不同的“.RData”文件。
  3. 您可以编写一个自定义函数,在设置新目录之前记住当前目录

    cd <- function(x = "") {   
        logical (length = 0)
        if (!is.logical(x)) {    
            cwd <- getwd()   
            Sys.setenv("R_OLDWD"=cwd)
            setwd(x)    
          } else {
            setwd(print(paste(Sys.getenv("R_OLDWD"))))
        }
    }
    

来自R for Windows FAQ

工作目录是启动 Rgui 或 Rterm 的目录,除非使用了快捷方式属性的“开始于”字段中指定的快捷方式。您可以通过调用 getwd() 从 R 代码中找到它。

主目录设置如下:如果设置了环境变量R_USER,则使用其值。否则,如果设置了环境变量 HOME,则使用其值。在这两个用户可控设置之后,R 尝试查找系统定义的主目录。它首先尝试使用 Windows“个人”目录(通常在 Windows XP 上为 C:\Documents and Settings\username\My Documents,在 Vista 上为 C:\Users\username\Documents)。如果失败,如果环境变量 HOMEDRIVE 和 HOMEPATH 都设置了(而且它们通常是),则值为 ${HOMEDRIVE}${HOMEPATH}。如果所有这些都失败,则使用当前工作目录。

您可以从 Sys.getenv("R_USER") 的 R 代码中找到它。

【讨论】:

    【解决方案2】:

    我将与特定项目关联的所有代码保存在一个文件中(或者更常见的是一系列文件)。第一行通常是

    setwd(...)
    

    设置目录。

    将工作区保存到所需目录后,只需打开该工作区(而不是从桌面或开始菜单)启动 R。然后目录已经设置到你想要的位置了。

    【讨论】:

      【解决方案3】:

      我使用 StatET 和 Eclipse 作为我的 R 用户界面。它会自动将工作目录设置为我的项目文件夹的位置。工作区 = ${project_loc}。 当从特定项目启动 R 时,它还会自动加载任何已保存的工作区。

      【讨论】:

        【解决方案4】:

        在 Windows 上,我将来自 code.google.com/p/batchfiles 的文件 Rgui.bat 放在我的项目目录中,并使用它来启动 R。

        【讨论】:

          【解决方案5】:

          这取决于您使用的系统。有一些技巧可以使用,但如果您希望从系统菜单运行 R 并让它记住目录,那么快速回答是否定的,这不会发生。 Linux 非常简单,只需先导航到终端中的目录即可解决问题。我对macs一无所知,但我可以广泛地谈论windows。首先,如果您导航到该目录并保存您的工作区一次,那么您可以使用保存的 .RData 文件双击并恢复您的工作区,包括当前目录。我个人的、有偏见的意见是使用像Notepad++NppToR 这样的编辑器,这样当你生成一个Rgui 窗口时,你会从当前脚本继承活动目录。它还提供了一个菜单命令来调整工作目录到当前脚本的目录。

          另一点是,您始终可以在任何平台上的任何 R 会话中使用 setwd("path/to/dir/") 命令设置工作目录。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-11-26
            • 1970-01-01
            • 1970-01-01
            • 2015-04-19
            • 1970-01-01
            • 2016-12-31
            • 2011-10-18
            相关资源
            最近更新 更多