繁体   English   中英

我可以避免评估内联 Rmarkdown `r code` 块吗?

[英]Can I avoid evaluating inline Rmarkdown `r code` chunks?

在演示如何使用Suggested包的小插图中,我有这样的内容:

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

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

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

也许是一个使用正则表达式(a 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 之后就断线。

yihui 的网站有更详尽的解释: https ://yihui.org/knitr/faq/ (#7)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM