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

时间:2012-04-25 06:00:39

标签: windows r

我需要与没有任何命令行经验的同事分享我的数据和R源文件。而且,我在Linux下工作时使用Linux。但她想改变一些常量并重新计算脚本。因此,如果她可以双击R源文件并且R将在源和数据文件所在的同一目录中执行,那将会很酷。我想过设置

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

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

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

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

我是否必须为此编写R loader(exe或cmd)?

2 个答案:

答案 0 :(得分:2)

一些提示,是白天在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版本和软件包,在少数情况下,这会导致几次打嗝。

这是一个简单的流程,但有效且允许跨两个系统无缝工作

答案 1 :(得分:0)

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