gpt4 book ai didi

r - 我可以强制 knitr 将 "\n"解释为传递给 R 函数的字符串中的实际换行符吗?

转载 作者:行者123 更新时间:2023-12-04 23:53:15 25 4
gpt4 key购买 nike

我正在尝试使用 knitr 通过 RStudio 从 .Rmd 文件将以下 Markdown 编织为 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 block 中生成的代码。但是,根据生成的 HTML,knitr 似乎并未将字符串中的 \n 解释为实际的换行符 - 它只是将其解释为文本。

生成的 HTML(对于 R block )如下所示:

<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 函数的字符串中的换行符,有什么想法吗?

最佳答案

更新 2017/09/21: block 选项 tidy默认为 FALSE在当前版本的 knitr 中,因此不再需要设置它(不过这样做也没有坏处)。


那是由于 default reformatting使用 formatR 包的代码;您可以通过 tidy=FALSE 将其关闭:

```{r tidy=FALSE}

关于r - 我可以强制 knitr 将 "\n"解释为传递给 R 函数的字符串中的实际换行符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19955202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com