Pretty распечатать sql-код из отдельного файла с помощью knitr

#r #knitr #r-markdown

#r #knitr #r-markdown

Вопрос:

Knitr создает приятный код с подсветкой синтаксиса при использовании фрагмента кода, как показано ниже.

 ```sql
SELECT column
FROM table
```
  

Возможно ли добиться того же, но с sql-кодом, хранящимся в файле?
Что-то вроде:

 ```sql
read_chunk('mycode.sql')
```
  

Ответ №1:

Я думаю, вы можете использовать встроенное R-выражение для его достижения:

 ```sql
`r xfun::file_string('mycode.sql')`
```
  

Комментарии:

1. Замечательно, спасибо Yihui. Я не знал, что вы можете использовать встроенное r-выражение внутри фрагментов кода. Это позволяет мне синхронизировать мою документацию с моим кодом.

2. @Rickard Нет, вы не можете использовать встроенные выражения R в фрагментах кода. Встроенное выражение R работает здесь, потому что '''sql не обрабатывается как фрагмент кода в knitr. На данный момент только '''{r *} идентифицируется как фрагмент кода (я не могу ввести здесь буквальные обратные ссылки, поэтому я использовал ' , которые следует читать как обратные ссылки).

3. Отклонено, потому что это решение не работает для меня. Файл sql правильно считывается и отображается, но не форматируется как код sql.

4. Это не работает в блоке {sql, eval=FALSE} в версии v3.4. Было бы неплохо иметь.

5. @Chris убедитесь, что вы не включили фигурные скобки, это только для недооцененного sql, поэтому eval=FALSE не требуется