使用Windows资源管理器在源目录中启动R
我需要与没有任何命令行经验的同事共享我的数据和R源文件。此外,我在Linux上工作,而她在Windows下工作。但是她想更改一些常量并重新计算脚本。因此,如果她可以双击R源文件,R将在源文件和数据文件所在的同一目录中执行,那就太酷了。我考虑过设置使用Windows资源管理器在源目录中启动R,windows,r,Windows,R,我需要与没有任何命令行经验的同事共享我的数据和R源文件。此外,我在Linux上工作,而她在Windows下工作。但是她想更改一些常量并重新计算脚本。因此,如果她可以双击R源文件,R将在源文件和数据文件所在的同一目录中执行,那就太酷了。我考虑过设置 Rscript -e "source(\"%1\",chdir=TRUE)" 指向注册表中的关联项,但文件名(%1)将包含R不会处理的反斜杠 另一种方法是setwd()到脚本开头的源目录,但我不知道如何获取它。好的,argv[0]将是R.exe,而
Rscript -e "source(\"%1\",chdir=TRUE)"
指向注册表中的关联项,但文件名(%1)
将包含R不会处理的反斜杠
另一种方法是setwd()
到脚本开头的源目录,但我不知道如何获取它。好的,argv[0]
将是R.exe
,而不是source.R
使用GUI也不是很方便,因为它需要单独更改目录,然后加载脚本
我必须为此编写R加载器(exe或cmd)吗?一些提示,作为白天在Windows上工作,晚上在Mac OS上工作的人。我在两台机器共用的Dropbox文件夹中创建项目。我遵循这种工作惯例 我在两台机器上都使用RStudio。我通过在本地右键单击脚本文件来启动RStudio,这会将工作目录设置为要打开的文件。如果我将脚本中的所有路径保持相对,那么我可以轻松地与自己共享项目:) 我通过设置一个全局变量来启动脚本,这一行看起来很傻:
DIR <- getwd()
DIROops。如果资源管理器不在网络文件夹中,则在源目录中启动R。最初我尝试在网络文件夹上启动它。因此,唯一要做的就是将文件复制到本地驱动器,或者将网络驱动器映射到一个字母 你可以试试我用的方法;请参阅《我很困惑》的底部:通常R会(在内部)转换Windows反斜杠,并正确地遵循目录路径。你确定失败了?接下来,让我问一下:你能通过在她的.Rprofile
文件中设置路径环境值并使用文件.PATH
来做你想做的吗?这里有一个奇怪的链接-两种方法都不起作用。奇怪-链接中的两种方法都不起作用。shell/open/命令中的“pushd%L”无效,因为%L扩展为完整文件名(而不是目录)。attr('srcref')在我的Linux系统和Windows中返回NULL。dirname(sys.frame(1)$ofile)是特定于版本的,不起作用。commandArgs(TRUE)[“infle”]由于TRUE和“infle”都不起作用。这一条似乎最接近解决方案。我将尝试使用setwd(dirname(rev(commandArgs())[1])。Carl,R确实转换文件路径,但斜杠必须在代码中加倍(并且是-e之后的代码)。
new.path <- paste(DIR, "rel-path", "to", "new", "file", sep="/")
DIR <- "~/workspace/newproject"
DIR <- "c:/R_workspace/yet/a/different/project"