我在目录中有一个R脚本集合,并希望将它们全部编译 对于HTML,我可能会手动使用R Studio Compile Notebook,但可以控制CSS样式。
每个文件都有一个最小的YAML标题和一些标记,如下所示,我不想在带有块选项的脚本中引入额外的复杂性,除非绝对必要。
#' ---
#' title: "Tests for association in two-way tables"
#' author: "Michael Friendly"
#' ---
#' ## Load and examine data
library(vcdExtra)
data(SexualFun)
SexualFun # show the table
...
我对使用哪种工具以这种方式编译单个文件感到困惑--- spin
| knit2html
,markdownToHTML
等等。一旦我做对了,我可以使用apply()
之类的内容为我的文件列表files <- list.files(pattern="*.R$")
执行此操作。
这是我尝试编译一个文件的内容,还有一些额外的控制权:
library(knitr)
options(markdown.HTML.options = markdownHTMLOptions(stylesheet = "markdown.css"))
knit_theme$set("seashell")
opts_chunk$set(fig.align="center")
spinone <- function(file, outdir="output/") {
fn <- knitr:::sans_ext(file)
#+ suppressmessages, include=FALSE
knitr::opts_chunk$set(warning = FALSE, message = FALSE)
spin(file)
Rmd <- knitr:::sub_ext(file, "Rmd")
out <- paste0(outdir, knitr:::sub_ext(file, "html"))
knit2html(Rmd, output=out)
}
但它无法正常工作。我明白了:
> spinone("sexfun-chisq.R")
processing file: sexfun-chisq.Rmd
...
|.................................................................| 100%
ordinary text without R code
output file: sexfun-chisq.md
Error in readLines(if (is.character(input2)) { :
cannot open the connection
In addition: Warning message:
In readLines(if (is.character(input2)) { :
cannot open file 'sexfun-chisq.Rmd': No such file or directory
实际上,sexfun-chisq.html
已生成,但它没有YAML标题,也没有使用我的样式选项。
答案 0 :(得分:1)
使用spin(file, knit = FALSE)
以便不删除Rmd文件(请参阅precious
中的?spin
参数)。