首页 > 解决方案 > 使用批处理文件运行多行 R 脚本时如何保存工作区

问题描述

我正在尝试在批处理文件中运行多个 R 语句来读取 csv 并训练模型,如下所示

"D:\Program Files\R\R-3.4.2\bin\x64\Rscript" -e "library(C50)" --save
"D:\Program Files\R\R-3.4.2\bin\x64\Rscript" -e "load('E:/ALGO/batch/.Rdata')"
"D:\Program Files\R\R-3.4.2\bin\x64\Rscript" -e "C50Training<-read.csv(file='E:/algo/dataset/C50Training.csv',header=TRUE)" --save
"D:\Program Files\R\R-3.4.2\bin\x64\Rscript" -e "load('E:/ALGO/batch/.Rdata')"
"D:\Program Files\R\R-3.4.2\bin\x64\Rscript" -e  "capture.output(summary(C50Training), file = 'E:/ALGO/summary/C50TrainingSum.txt')" --save
"D:\Program Files\R\R-3.4.2\bin\x64\Rscript" -e "load('E:/ALGO/batch/.Rdata')"
"D:\Program Files\R\R-3.4.2\bin\x64\Rscript" -e "C50fit<-C5.0(formula=AAA~AAB+AAC+AAD+AAE+AAF,data=C50Training)" --save
"D:\Program Files\R\R-3.4.2\bin\x64\Rscript" -e "load('E:/ALGO/batch/.Rdata')"
"D:\Program Files\R\R-3.4.2\bin\x64\Rscript" -e "capture.output(summary(C50fit),file='E:/ALGO/summary/SummC50fit.txt')" --save

但它不起作用,因为通过每条批处理线 R 并没有节省它的工作空间,即使我为每条线添加--save和加载.Rdata。当我将所有 R 语句包含在一个批处理行中时,它确实有效,用分号分隔,如下所示。

"D:\Program Files\R\R-3.4.2\bin\x64\Rscript" -e "library(C50);C50Training<-read.csv(file='E:/algo/dataset/C50Training.csv',header=TRUE);C50fit<-C5.0(formula=AAA~AAB+AAC+AAD+AAE+AAF,data=C50Training);capture.output(summary(C50fit),file='E:/ALGO/summary/SummC50fit.txt');" 

有没有办法可以用一个批处理行运行每个 R 语句?

非常感谢

标签: rbatch-file

解决方案


我认为您要做的是创建一个包含您要运行的所有内容的单个 R 文件,并使用以下命令调用它:

source("path/to/your/file.R")

这样,您创建的文件将被调用并执行


推荐阅读