Дословные фрагменты кода с двойными кавычками в RMarkdown - PullRequest
0 голосов
/ 20 июня 2020

Как показано в 4.7 фрагменты дословного кода в @Yihui R Markdown Cookbook , мы можем показать дословное встроенное выражение, `r knitr::inline_expr("coef(summary(model))")`, например, в нашем выводе RMarkdown. Однако этот knitr::inline_expr() не сможет проанализировать код, заключенный в двойные кавычки, например `r knitr::inline_expr("coef(summary(model))["(Intercept)", "Estimate"]")`. Тогда что мне делать, если я хочу продемонстрировать дословно, содержащее такие специальные символы?

---
title: "Untitled"
author: "CLRR"
date: "2020/6/20"
documentclass: article
output:
  bookdown::pdf_document2:
    latex_engine: xelatex
    keep_tex: TRUE
---

This verbatim can appear in the output:

`` `r knitr::inline_expr("coef(summary(model))")` ``

<!--
But, if the code contains `"`, the evaluation fails.

`r knitr::inline_expr("coef(summary(model))["(Intercept)", "Estimate"]")`

```
Quitting from lines 2-16 (test.Rmd) 
Error in parse(text = code, keep.source = FALSE) : 
  <text>:1:54: unexpected string constant
1: knitr::inline_expr("coef(summary(model))["(Intercept)", "
                                                         ^
Calls: <Anonymous> ... hook_eval -> withVisible -> eval -> parse_only -> parse
Execution halted
```
-->

1 Ответ

4 голосов
/ 20 июня 2020

Вы можете избежать двойных кавычек:

---
title: "Untitled"
author: "CLRR"
date: "2020/6/20"
documentclass: article
output:
  bookdown::pdf_document2:
    latex_engine: xelatex
    keep_tex: TRUE
---

This verbatim can appear in the output:

`r knitr::inline_expr("coef(summary(model))[\"(Intercept)\", \"Estimate\"]")`

введите описание изображения здесь

В комментариях @monte предоставляет другое решение, которое заключается в чередовании одинарных и двойных кавычек: knitr::inline_expr('coef(summary(model))["(Intercept)", "Estimate"]')

...