簡體   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