1

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

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

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

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

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

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

4

2 回答 2

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 版本和包,在某些情况下,这会导致几次打嗝。

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

于 2012-04-25T12:32:19.543 回答
0

哎呀。如果资源管理器不在网络文件夹中,则资源管理器在源目录中启动 R。最初我试图在网络文件夹上启动它。所以唯一要做的就是将文件复制到本地驱动器,或者将网络驱动器映射到一个盘符。

于 2012-04-26T01:43:01.360 回答