2009-11-21 43 views
0

我在超级用户问这个问题,但有人建议我把它放在这里,因为有更多的R专家。让R来存储每个会话的工作目录

问题:

当我进入File> Change dir ...时,我不得不导航到我的目录,这特别讨厌。

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

+1

虽然这是一个最终用户类型问题而不是编程问题,但关于R的问题可能会得到更多更好的答案1)如果它们发布在Stack Overflow上,并且2)如果它们被标记为“R ”。 – las3rjock 2009-11-06 03:29:01

+1

对我来说,你总是希望它在同一个地方,这似乎很奇怪。对于每个项目,您通常都有一个不同的目录。 – hadley 2009-11-21 13:47:59

+1

完全重复:http://stackoverflow.com/questions/1689116/getting-r-to-remember-previous-directory – Shane 2009-11-22 02:38:31

回答

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 \用户名\我的文档和Vista上的C:\ Users \ username \ Documents)。如果失败,如果同时设置了两个环境变量HOMEDRIVE和HOMEPATH(并且它们通常是),则值为$ {HOMEDRIVE} $ {HOMEPATH}。如果所有这些失败,则使用当前的工作目录。

您可以通过Sys.getenv(“R_USER”)的R代码找到它。

4

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

setwd(...) 

设置目录。

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

0

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

0

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

1

这取决于您使用的系统。有几个技巧可以使用,但是如果你想从系统菜单运行R并让它记住目录,那么快速回答是不会发生的。 Linux非常简单,只需先导航到终端中的目录,即可解决问题。我不知道苹果电脑,但我可以广泛地谈论Windows。首先,如果您导航到该目录并保存一次工作空间,则可以使用保存的.RData文件双击并恢复包括当前目录在内的工作空间。我个人的和有偏见的观点是,当你产生一个Rgui窗口,你从当前脚本继承活动目录时,使用编辑器Notepad++NppToR。它还提供了一个菜单命令来将工作目录调整到当前脚本的目录。

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