[英]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.