我正在尝试编写一个可以运行单独的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)