首页 文章

什么是永久设置R工作目录的万无一失的方法?

提问于
浏览
6

有关如何更改R中的默认工作目录的大量信息(每次启动R或RStudio时,工作目录将更改回默认值,因此每次都必须运行setwd()) . 在RStudio中,工具>全局选项>常规中有相关选项 . 其他解决方案似乎涉及编辑Rprofile.site文件 . 但是,所有这些都要求用户能够找到Rprofile并对其进行编辑,或浏览设置,并且一直没有弄乱 .

我需要的是为那些不知道如何做到这一点的傻瓜学生提供解决方案 . 有人可能会认为定制环境是一种很好的做法,但这是一个非常短暂的过程,我希望它能够尽可能地让 Spectator 中的计算机文盲灵魂无痛 .

我已经编写了一个脚本,可以下载课程所需的所有软件包,在RStudio中加载脚本,下载并加载包含数据和功能的工作区 . 他们只需在安装R RStudio后运行一次 . 有一会儿我觉得这个好主意:

cat("setwd(\"the desired working directory\")", file=file.path(Sys.getenv("R_HOME"), "etc", "Rprofile.site"), append=T)

...但是这会抛出Permission Denied,至少在Windows下(程序文件受到保护我猜) . 所需的解决方案应该是独立于平台的(大多数都有Windows,但有些可能有Mac或Linux) . 但最重要的是,它应该只是在控制台中粘贴脚本并按下回车,而不是更复杂(因此 Headers 的傻瓜部分) .

3 回答

  • 1

    最简单的选择可能是安装Rstudio服务器,使用您想要的所有软件包进行配置,然后为每个学生提供服务器上的帐户 . 这样每个学生都以相同的设置和他们自己的目录/文件夹开始 . 学生只需要上网即可使用 . 然后,您可以为那些冒险到足以在自己的计算机上安装R的学生提供说明(并且更有可能按照说明正确设置) .

    您也可以尝试使用 cat 选项,但将指令放入'HOME'中的.Rprofile而不是'R_HOME'中的.Rprofile.site .

    或者您可以将代码放在 .First 函数中并让它们将工作区保存在默认位置,然后当它们从默认位置运行R时,工作目录将由 .First 更改 .

    或者你可以让他们在默认目录下工作 .

  • 5

    怎么样的

    set_default_wd <- function(wd = getwd()) {
      text <- paste0(
        'local({ setwd("', wd, '") })')
      ##
      if (Sys.info()["sysname"] == "Windows") {
        write(
          text,
          file = paste0(Sys.getenv("HOME"), "\\.Rprofile"),
          append = TRUE)
      } else {
        write(
          text,
          file = paste0(Sys.getenv("HOME"), "/.Rprofile"),
          append = TRUE)
      }
    }
    ##
    #R> set_default_wd()  #set_default_wd("some/file/path")
    

    这应该适用于Windows和类Unix系统,并避免任何权限问题 . 实际上,用户端的唯一要求是指定一个有效的文件路径,他们应该(希望)能够解决这个问题 .


    在给出格式错误的文件路径等情况下,可以选择覆盖 $HOME/.Rprofile (而不是强制添加行) .

    set_default_wd <- function(wd = getwd(), overwrite = FALSE) {
      text <- paste0(
        'local({ setwd("', wd, '") })')
      ##
      if (Sys.info()["sysname"] == "Windows") {
        write(
          text,
          file = paste0(Sys.getenv("HOME"), "\\.Rprofile"),
          append = !overwrite)
      } else {
        write(
          text,
          file = paste0(Sys.getenv("HOME"), "/.Rprofile"),
          append = !overwrite)
      }
    }
    
  • 1

    您可以在工具栏上创建 RGui.exe 的快捷方式 .

    然后右键单击图标,右键单击R,属性,在选项卡快捷方式中,可以设置 Start in :所需的文件夹 .

    例如 C:/Users/myStudentID/Documents/dev

    enter image description here

相关问题