将 R 对象分配给 运行 个命令链
assigning an R object to run a chain of command
我正在学习使用 bookdown
从同一 Rmd 文件同时呈现 PDF 和 Word 文档。由于我想使用 Sumatra PDF reader
查看 PDF 输出,它无法自动重新加载电子书 UI 中显示的文档的修改文档(请参阅 https://www.sumatrapdfreader.org/settings.html 中的 ReloadModified Documents
)。每次渲染 PDF 文件并在 Sumatra PDF reader 中查看它时,我都创建了一行 运行,如下所示:
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
即可调用您的步骤。
我正在学习使用 bookdown
从同一 Rmd 文件同时呈现 PDF 和 Word 文档。由于我想使用 Sumatra PDF reader
查看 PDF 输出,它无法自动重新加载电子书 UI 中显示的文档的修改文档(请参阅 https://www.sumatrapdfreader.org/settings.html 中的 ReloadModified Documents
)。每次渲染 PDF 文件并在 Sumatra PDF reader 中查看它时,我都创建了一行 运行,如下所示:
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
即可调用您的步骤。