knitr的spin():不能在标题中嵌入内联R表达式

时间:2016-06-19 19:29:39

标签: r knitr r-markdown

我正在使用knitrspin()函数将R脚本呈现为HTML(使用RStudio的“编译笔记本”命令)。

虽然在纯文本中包含动态R表达式很容易,但这显然不适用于标题。

例如,第一个示例正确地将内联表达式嵌入到纯文本中:

library(knitr)

#' You can use the special syntax {{code}} to embed inline expressions, e.g.
{{mean(x) + 2}}
#' is the mean of x plus 2.

但是第二个例子,在渲染HTML时,只将标题样式应用于第一行(“Crosstabulation of”),然后包装该行并恢复为纯文本:

library(knitr)
var0 <- "Sex"
var1 <- "Education"

#' # Crosstabulation of
{{var0}}
#' # by
{{var1}}
#' # .

如何将标题样式应用于块的所有行?有什么替代语法我必须使用?我错过了什么?

1 个答案:

答案 0 :(得分:1)

我认为这是spin()的限制。您可以使用brew预处理文件,或者使用R来输出标记中的标题

`%#%` <- function(tpl, vals) if(interactive()) vals else do.call(sprintf, c(fmt=tpl, vals)) 

var0 <- "Sex"
var1 <- "Education"

{{"# Crosstabulation of %s by %s " %#% list(var0, var1)}}