如何解决如何从 Windows 命令行“源”不是逐行运行R 脚本
我正在创建一个 R 脚本 myscript.R
,它通过 XLConnect
包操作 Excel 文件。
关键是它引用了几个外部文件:excel文件本身和另一个R文件(函数库),所以我需要在脚本的位置设置一个工作目录(这样外部文件的相对路径才能正常工作)。
我在我的脚本中使用以下内容
new_wd <- dirname(sys.frame(1)$ofile)
setwd(new_wd)
当我从 RStudio 获取脚本时,它就完成了工作。问题是该脚本将由非程序员、非 Rstutio 用户使用,因此我创建了 .bat 文件(我想将其转换为 .exe 文件)
"C:\Program Files\R\R-4.0.3\bin\Rscript.exe" "C:\my\path\to\myscript.R"
它逐行执行脚本,但 sys.frame(1)
仅在采购时有效。
我该如何解决?
谢谢
解决方法
我找到了一个解决方案并且它可以正常工作。
从 CMD
命令行或 .bat
文件中,可以向命令添加参数 -e
,以便您可以使用 R 语言。
absolute\path\to\Rscript.exe -e "source('"relative\path\to\myscript.R"')"
它对我有用。
此外,正如 Compo 评论的那样,我认为不需要 .exe
文件,因为 .bat
可以完成这项工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。