使用Windows资源管理器在源代码目录中启动R

问题描述:

我需要与没有任何命令行经验的同事共享我的数据和R源文件。此外,我在Linux下工作,而她在Windows下工作。但她想更改一些常量并重新计算脚本。所以,如果她只需双击R源文件并且R将在源文件和数据文件所在的相同目录中执行,那将很酷。我想到了设置使用Windows资源管理器在源代码目录中启动R

Rscript -e "source(\"%1\",chdir=TRUE)" 

在注册表中的关联键,但文件名(%1)将包含R将无法处理反斜杠。

另一种方法是将setwd()转到我的脚本开头的源代码目录,但是我不知道如何获取它。 AFAIK,argv[0]将是R.exe,而不是source.R

使用GUI不是很方便,因为它需要单独更改目录然后加载脚本。

我必须为此编写一个R加载器(exe或cmd)吗?

+0

你可以尝试我使用的方法;看到底部http://*.com/questions/10098189/disable-saving-history/10103274#10103274 – 2012-04-25 06:55:44

+0

我很困惑:通常R转换Windows反斜杠(内部),并正确地遵循目录路径。你确定它失败了?接下来让我问:你可以通过在她的'.Rprofile'文件中设置PATH环境值并使用'file.path'来完成你想要的操作吗? – 2012-04-25 11:07:18

+0

这里是一个[可能有帮助的答案](http://*.com/a/9132685/210673) – Aaron 2012-04-25 13:32:10

几个提示,作为一个白天在Windows上工作的人,以及在夜间使用Mac OS。我在两台机器共有的Dropbox文件夹中创建我的项目。我遵循这个工作惯例。

我在两台机器上都使用RStudio。我通过在本地右键单击脚本文件来启动RStudio,并将工作目录设置为正在打开的文件。如果我再继续在脚本相对我一切的道路,那么我可以与自己分享我的项目很容易:)

我通过设置一个全局变量开始我的剧本,在一条线上,看起来傻:

DIR <- getwd() 

然后我在整个其余脚本中使用相对路径。用这样的线条:

new.path <- paste(DIR, "rel-path", "to", "new", "file", sep="/") 

这可以避免我不得不修补每台机器上的配置文件。它看起来很明显,但它给了我一个地方改变的情况下,我希望脚本其他地方来看,比如说DIR值,早上

DIR <- "~/workspace/newproject" 

,或者在晚上,

DIR <- "c:/R_workspace/yet/a/different/project" 

我还必须小心,我使用相同的R版本和软件包,在少数情况下,导致打嗝几次。

这是一个简单的流量,但有效的,并允许无缝跨越两个系统

糟糕工作。如果资源管理器不在网络文件夹中,资源管理器会在源目录中启动R.最初我试图在网络文件夹上启动它。因此,唯一要做的就是将文件复制到本地驱动器,或将网络驱动器映射到一个字母。