使用knitr从单独的文件漂亮地打印sql代码

使用knitr从单独的文件漂亮地打印sql代码,r,knitr,r-markdown,R,Knitr,R Markdown,当使用代码块时,Knitr会生成一个漂亮的、语法突出显示的代码,如下所示 ```sql SELECT column FROM table ``` 是否可以通过存储在文件中的sql代码实现相同的功能? 比如: ```sql read_chunk('mycode.sql') ``` 我认为您可以使用内联R表达式来实现它: ```sql `r xfun::file_string('mycode.sql')` ``` 我认为您可以使用内联R表达式来实现它: ```sql `r xfun::file

当使用代码块时,Knitr会生成一个漂亮的、语法突出显示的代码,如下所示

```sql
SELECT column
FROM table
```
是否可以通过存储在文件中的sql代码实现相同的功能? 比如:

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

我认为您可以使用内联R表达式来实现它:

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

我认为您可以使用内联R表达式来实现它:

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

太好了,谢谢一辉。我不知道可以在代码块中使用内联r表达式。这使我能够使文档与代码保持同步。@Rickard不,您不能在代码块中真正使用内联R表达式。内联R表达式在这里工作,因为在knitr中,
''sql
不被视为代码块。目前,只有
'{r*}
被标识为代码块(我不能在这里键入文字背景标记,所以我使用了
'
,应该将其理解为背景标记)。由于此解决方案不适用于我,因此被否决。sql文件已正确读取和显示,但未格式化为sql代码。这在v3.4中的{sql,eval=FALSE}块中不起作用。如果有,那就太好了。@Chris请确保没有大括号,这只适用于未计算的sql,因此不需要
eval=FALSE
太好了,谢谢Yihui。我不知道可以在代码块中使用内联r表达式。这使我能够使文档与代码保持同步。@Rickard不,您不能在代码块中真正使用内联R表达式。内联R表达式在这里工作,因为在knitr中,
''sql
不被视为代码块。目前,只有
'{r*}
被标识为代码块(我不能在这里键入文字背景标记,所以我使用了
'
,应该将其理解为背景标记)。由于此解决方案不适用于我,因此被否决。sql文件已正确读取和显示,但未格式化为sql代码。这在v3.4中的{sql,eval=FALSE}块中不起作用。如果有,那就太好了。@Chris请确保没有大括号,这只适用于未计算的sql,因此不需要
eval=FALSE