我可以避免评估内联 Rmarkdown 'r 代码' 块吗?



在演示如何使用Suggested包的小插曲中,我有这样的东西:

if (suggested_package_not_available) {
knitr::opts_chunk$set(eval = FALSE)
}

这意味着尽管Suggested包不可用,但小插图仍在运行等。它只显示代码,而不是结果。

我可以对内联R代码(`r code`(做类似的事情吗?

也许一个钩子使用正则表达式(la`r [^`]+`(在内联代码周围添加两个反引号,以便显示内联代码而不是计算(这通常会导致错误,因为不再计算块(?

一个技巧可能是打印字符串或计算表达式:

check_code <- function(expr, available){
if(available){
eval(parse(text = expr))
} else {
expr
}
}
check_code("1+1", TRUE)
check_code("1+1", FALSE)

它看起来像前后的双反引号,以及在 'r 将起作用之后断开行。

在艺辉的网站上有更详尽的解释:https://yihui.org/knitr/faq/

对于内联 R 代码,您可以使用函数 knitr::inline_expr(((在 knitr>= v1.8 中可用(。如果你正在编写一个 R Markdown 文档,你可以使用一个技巧:在 'r 之后立即换行(后面没有空格(,并将整个内联表达式包装在一对双反引号中,例如,

这将在输出中显示`r 1+1`的逐字内联 R 表达式。

最新更新