我在超级用户问这个问题,但有人建议我把它放在这里,因为有更多的R专家。让R来存储每个会话的工作目录
问题:当我进入File> Change dir ...时,我不得不导航到我的目录,这特别讨厌。
有谁知道如何让R记得以前用过的目录?
我在超级用户问这个问题,但有人建议我把它放在这里,因为有更多的R专家。让R来存储每个会话的工作目录
问题:当我进入File> Change dir ...时,我不得不导航到我的目录,这特别讨厌。
有谁知道如何让R记得以前用过的目录?
我可以不回答你的问题,因为这是一个有点模糊,但有些想法:
你可以写你之前设置新目录
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代码找到它。
我将与特定项目关联的所有代码都保存在一个文件中(或者更常见的是一系列文件)。第一行通常是
setwd(...)
设置目录。
将工作区保存到所需目录后,只需打开该工作区(而不是从桌面或开始菜单)即可启动R。然后该目录已经设置到你想要的地方。
我使用StatET和Eclipse作为我的R用户界面。它会自动将工作目录设置为我的项目文件夹的位置。 workspace = $ {project_loc}。 当从特定项目启动R时,它也会自动加载任何保存的工作区。
在Windows上,我从code.google.com/p/batchfiles中的一个文件Rgui.bat放在我的项目目录中,并使用它启动R.
这取决于您使用的系统。有几个技巧可以使用,但是如果你想从系统菜单运行R并让它记住目录,那么快速回答是不会发生的。 Linux非常简单,只需先导航到终端中的目录,即可解决问题。我不知道苹果电脑,但我可以广泛地谈论Windows。首先,如果您导航到该目录并保存一次工作空间,则可以使用保存的.RData文件双击并恢复包括当前目录在内的工作空间。我个人的和有偏见的观点是,当你产生一个Rgui窗口,你从当前脚本继承活动目录时,使用编辑器Notepad++和NppToR。它还提供了一个菜单命令来将工作目录调整到当前脚本的目录。
另一点是您可以随时在任何平台上的任何R会话中使用setwd("path/to/dir/")
命令设置工作目录。
虽然这是一个最终用户类型问题而不是编程问题,但关于R的问题可能会得到更多更好的答案1)如果它们发布在Stack Overflow上,并且2)如果它们被标记为“R ”。 – las3rjock 2009-11-06 03:29:01
对我来说,你总是希望它在同一个地方,这似乎很奇怪。对于每个项目,您通常都有一个不同的目录。 – hadley 2009-11-21 13:47:59
完全重复:http://stackoverflow.com/questions/1689116/getting-r-to-remember-previous-directory – Shane 2009-11-22 02:38:31