3

我正在尝试使用 knitr 将以下 markdown 从使用 RStudio 的 .Rmd 文件编织到 HTML:

注意:此代码将生成错误,因为您无权访问我正在查询的服务器,但有问题的 HTML 仍会呈现,我的问题仅涉及 HTML 文件中代码的格式 - 而不是 R 的输出。

SQL Code 

```{sql}
select 
  count(*) child_count
  ,year(eps_begin) year_plc
from vw_episodes
where eps_begin between '2009-01-01' and '2010-12-31'
  and fl_dur_7 = 0
group by 
  year(eps_begin)
```

R Code

```{r }
sqlQuery(cn, 
         "select 
                count(*) child_count
                ,year(eps_begin) year_plc
              from vw_episodes
              where eps_begin between '2009-01-01' and '2010-12-31'
                and fl_dur_7 = 0
              group by 
                year(eps_begin)")

```

我的问题与我编织 HTML 时 R 代码的格式有关。我希望传递给sqlQuery()函数的 SQL 代码的格式与 SQL 块中生成的代码类似。但是,根据生成的 HTML,knitr 似乎并未\n将字符串中的 解释为实际的换行 - 它只是将其解释为文本。

生成的 HTML(用于 R 块)如下所示:

<pre><code class="r">sqlQuery(cn, &quot;select \n                count(*) child_count\n                ,year(eps_begin) year_plc\n              from vw_episodes\n              where eps_begin between &#39;2009-01-01&#39; and &#39;2010-12-31&#39;\n                and fl_dur_7 = 0\n              group by \n                year(eps_begin)&quot;)
</code></pre>

当我真正想要的是这样的事情时:

<pre><code class="r">sqlQuery(cn, 
    &quot;select
        count(*) child_count
        ,year(eps_begin) year_plc
    from vw_episodes
    where eps_begin between &#39;2009-01-01&#39; and &#39;2010-12-31&#39;     
        and fl_dur_7 = 0
    group by 
        year(eps_begin)&quot;)
</code></pre>

关于如何编织到 HTML 并仍然保留传递给 R 函数的字符串中的换行符的任何想法?

4

1 回答 1

2

2017 年 9 月 21 日更新:在当前版本的knitr中, chunk 选项tidy默认为,因此不再需要设置它(尽管这样做没有害处)。FALSE


这是由于默认使用formatR包重新格式化代码;您可以通过以下方式将其关闭tidy=FALSE

```{r tidy=FALSE}
于 2013-11-13T19:42:24.090 回答