r - 分配一个 R 对象来运行命令链
问题描述
我正在学习使用bookdown
从同一个 Rmd 文件同时呈现 PDF 和 Word 文档。由于我想使用 来查看 PDF 输出Sumatra PDF reader
,它无法自动重新加载电子书 UI 中显示的文档的修改文档(请参阅ReloadModified Documents
https://www.sumatrapdfreader.org/settings.html )。当我渲染 PDF 文件并在 Sumatra PDF 阅读器中查看它时,我创建了一行来运行,如下所示:
bookdown::render_book('index.Rmd',output_format = 'all',new_session = TRUE,preview=TRUE);
system('cmd.exe',input='taskkill /IM SumatraPDFPortable.exe');
system('cmd.exe',input='"C:/PortableApps/SumatraPDFPortable/SumatraPDFPortable.exe" "E:/output.pdf"')
我想知道是否可以为该行分配一个 R 对象(例如:rendernow),以便每次我键入“rendernow”并进入 R 控制台时,都会执行上述行。
谢谢!
解决方案
让它成为一个函数:
rendernow <- function() {
bookdown::render_book('index.Rmd',output_format = 'all',new_session = TRUE,preview=TRUE);
system('cmd.exe',input='taskkill /IM SumatraPDFPortable.exe');
system('cmd.exe',input='"C:/PortableApps/SumatraPDFPortable/SumatraPDFPortable.exe" "E:/output.pdf"')
}
然后你可以通过调用它rendernow()
(所以你需要括号)
只是为了好玩,这里有一个不需要括号的解决方案:
rendernow <- structure("", class = "rendernow")
print.rendernow <- function(x, ...) {
bookdown::render_book('index.Rmd',output_format = 'all',new_session = TRUE,preview=TRUE);
system('cmd.exe',input='taskkill /IM SumatraPDFPortable.exe');
system('cmd.exe',input='"C:/PortableApps/SumatraPDFPortable/SumatraPDFPortable.exe" "E:/output.pdf"')
}
然后您只需键入rendernow
并调用您的步骤。
推荐阅读
- javascript - 如何对每行有 3 个值的数组进行排序?
- wordpress - 在 woocomerce rest api 中使用 Coupon_lines 创建购物车
- .htaccess - 在我的 .htaccess 中重定向到 https 不起作用
- json - 具有多个子子项的 JMESPath JSON 过滤器
- asp.net-mvc - 选择标签助手选定的值未在视图中呈现
- apache-spark - 如何根据存储在 Cassandra 中的结果使用 spark 为多家公司执行累积平均值?
- sql-server - 有没有办法告诉我查询结束时 OPTION (FAST 1) 做了什么?
- ruby-on-rails - 如何使用虾生成可编辑文档
- puppet - 由于运行 iexplore 进程,无法在节点上成功应用目录
- ios - '尝试滚动到无效的索引路径:{length = 2, path = 0 - 4}