Включить фрагмент кода SQL в скрипт R для преобразования в отчет об уценке - PullRequest
0 голосов
/ 23 сентября 2019

Я хотел бы включить фрагмент кода SQL в отчет RMarkdown.На самом деле я не планирую запускать какой-либо код SQL, поэтому у блока будет eval=FALSE, например:

```{sql, eval=FALSE}
select * from mtcars
where car = 'abc'
```

Теперь я обычно генерирую отчеты R Markdown, используя rmarkdown::render внутри сценариев R (в отличие от прямого запуска *.Rmd), как описано здесь .Можно ли включить фрагмент кода SQL в сценарий R для преобразования в отчет об уценке?Вот что я наивно использовал бы для достижения того, что мне нужно:

#+ sql, eval=FALSE
select * from mtcars
where car = 'abc'

Это нужно только для того, чтобы показать красиво выделенный код без его запуска, но рендеринг не удался.Я получаю следующую ошибку:

Ошибка при разборе (text = x, keep.source = TRUE):: 88: 15: неожиданный символ

Похоже наЕдинственный способ сделать это - закомментировать код SQL:

#+
# select * from mtcars
# where car = 'abc'

Но я хотел бы иметь правильно выделенный код в своем отчете.Это возможно в описанной мной настройке?

Ответы [ 2 ]

2 голосов
/ 24 сентября 2019

В старых версиях rmarkdown ваш код работал без изменений.Тем не менее, в более поздних версиях выдает ошибку, которую вы упомянули.Один из способов, который помогает мне обойти это, - использовать обратную черту до и после вашего запроса.Дополнительно, установка engine = 'sql' добавит форматирование.

#+ sql, eval = FALSE,  engine = 'sql'
`SELECT * FROM mtcars
WHERE car = 'abc'`

enter image description here

0 голосов
/ 23 сентября 2019

В ответ @ user2554330 , попробуйте ключевое слово mysql вместо ключевого слова sql.

```{mysql eval=FALSE}
select * from mtcars
where car = 'abc'
```

Причина:

  • Если выиспользуйте ключевое слово mysql, механизм уценки будет учитывать eval=FALSE.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...