从R运行生成的rscript跨平台系统调用

时间:2017-05-22 16:28:48

标签: r system

我正在尝试编写一个可以运行单独的rscript的函数(在原始函数工作时启动闪亮的绘图函数),但跨平台问题是一个主要问题。我想找到一种方法来避免以下代码中的'if windows == TRUE'语句。在不同系统上所需的转义字符的差异似乎存在问题 - 到目前为止,我已经在ubuntu和windows上进行了测试。

windows=FALSE


tmpdir=tempdir()
tmpdir=gsub('\\','/',tmpdir,fixed=TRUE)
  # tmpdir=gsub('\\','\\/',tmpdir,fixed=TRUE)

wd<-  paste0("setwd('",tmpdir,"')")
writeLines(text=paste0(wd,'
  testout<-5
  save(testout,file=paste0("testout.rda"))
'),con=paste0(tmpdir,"/testscript.R"))

if(windows) system(paste0("Rscript --slave --no-restore -e source(\'",tmpdir,"/testscript.R\')"),wait=FALSE) else
  system(paste0("Rscript --slave --no-restore -e source\\(\\\'",tmpdir,"\\/testscript.R\\\'\\)"),wait=FALSE)

0 个答案:

没有答案