Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Windows资源管理器在源目录中启动R_Windows_R - Fatal编程技术网

使用Windows资源管理器在源目录中启动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,而

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

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"