我想从 matlab 运行一个 R 脚本。
我可以使用以下命令从cmd完美运行R代码:
cd "C:Program FilesRR-3.1.3binx64"
R CMD BATCH "C:UsersnameDesktopCode.R"
但是在 Matlab 中,我不确定如何运行这两个指令。首先,我注意到我可以使用:
system('cd "C:Program FilesRR-3.1.3binx64"')
以运行通信行命令。但是我需要运行两个。并制作:
system('cd "C:Program FilesRR-3.1.3binx64"')
system('R CMD BATCH "C:UsersnameDesktopCode.R"')
不起作用。
我还看到了这篇关于在一行中运行多个命令行指令的文章,但这也没有用。
有人知道该怎么做吗?
你的脚本通常不应该关心它的执行位置。所以你根本不需要cd
语句:
system('"C:Program FilesRR-3.1.3binx64R.exe" CMD BATCH "C:UsersnameDesktopCode.R"')
请注意,R 路径可能并不总是相同的......以编程方式查找 R 的位置可能更安全。虽然如何在Windows上的Matlab中做到这一点,但我不知道。
此外,老实说,我真的不知道为什么R CMD BATCH
存在,但我强烈建议改用RScript
。由于多种原因,它的效果要好得多。
然后,代码变为:
system('"C:Program FilesRR-3.1.3binx64Rscript.exe" "C:UsersnameDesktopCode.R"')
尝试使用 dos
命令而不是 system
。