运行R文件以从命令行(终端)呈现bookdown输出

时间:2018-02-26 00:27:33

标签: r terminal bookdown

我试图从命令行运行R文件(来自终端 - 在macOS 10.13.3上)。

根据this helpful Q & A中的说明,我添加了Triplet tupleJava = new Triplet("value1","value2","value3"); System.out.println(tupleJava.getValue0()); => value1 System.out.println(tupleJava.getValue1()); => value2 System.out.println(tupleJava.getValue2()); => value3 作为R档案的第一行。

当我在终端中输入#! [path/to/file.R]时,测试其工作的文件的一部分似乎运行(我添加了Rscript [path/to/file.R]语句),但是,下一行:

print()

导致此错误:

rmarkdown::render_site(output_format = 'bookdown::pdf_book', encoding = 'UTF-8')

为什么Error in rmarkdown::render_site(output_format = "bookdown::pdf_book", : No site generator found. 语句似乎工作正常,但这一行 - 用于呈现 bookdown 一书? -

我尝试运行的文件位于GitHub here上。

1 个答案:

答案 0 :(得分:3)

对于 Markdown 我在script的示例目录中有以下littler大约1年半,并且使用它渲染了数百次。

请注意它调用rmarkdown::render()但您需要一种预订格式,因此您可能需要编写一个非常相似的脚本来调用bookdown::render_book()或类似的函数。

你当然可以像Makefiles中的单行一样做,很多人都这样做。这里有一个将所有Rmd文件映射到pdf文档(这是我的标准工作流程,我不做很多HTML):

sources :=              $(wildcard *.Rmd)
slides :=               $(sources:.Rmd=.pdf)

all:                    ${slides}

%.pdf:                  %.Rmd
                        Rscript -e "rmarkdown::render(\"$<\", clean=TRUE)"

因为我的编辑器有一个调用make的快捷方式,所以这特别方便。

最后,对于Rscript(可在任何地方使用),您可以#!/usr/bin/env Rscript或可能是Rscript的直接路径。