r - Knitr:只有 block 输出是 html(其余部分保持 rmarkdown)

标签 r knitr r-markdown

我正在尝试制作一个基于 knitr 的程序,该程序从字符向量读取 rmarkdown 并写入 textConnection。我几乎得到了我想要的东西,但我发现 knitr 只生成 block 的 html,并且只是通过 rmarkdown 到 html。

这是代码:

text_input <- "Title
========================================================

This is an R Markdown document. Markdown is a simple formatting syntax for authoring web pages (click the **MD** toolbar button for help on Markdown).

When you click the **Knit HTML** button a web page will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

```{r cache=TRUE}
x <- cars
summary(x)
```

You can also embed plots, for example:

```{r fig.width=7, fig.height=6,cache=TRUE}
plot(x)
```
"
library(knitr)

outfile <- textConnection("foo.html", "w")

pat_md()
render_html()
knit(input=NULL,output=outfile,text=text_input)
close(outfile)
cat(foo.html,sep="\n")

哪些输出:

Title
========================================================

This is an R Markdown document. Markdown is a simple formatting syntax for authoring web pages (click the **MD** toolbar button for help on Markdown).

When you click the **Knit HTML** button a web page will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

<div class="chunk" id="unnamed-chunk-1"><div class="rcode"><div class="source"><pre class="knitr r">x <- cars
summary(x)
</pre></div><div class="output"><pre class="knitr r">##      speed           dist    
##  Min.   : 4.0   Min.   :  2  
##  1st Qu.:12.0   1st Qu.: 26  
##  Median :15.0   Median : 36  
##  Mean   :15.4   Mean   : 43  
##  3rd Qu.:19.0   3rd Qu.: 56  
##  Max.   :25.0   Max.   :120
</pre></div></div></div>


You can also embed plots, for example:

<div class="chunk" id="unnamed-chunk-2"><div class="rcode"><div class="source"><pre class="knitr r">plot(x)
</pre></div><div class="rimage default"><img src="figure/unnamed-chunk-2.png" title="plot of chunk unnamed-chunk-2" alt="plot of chunk unnamed-chunk-2" class="plot" /></div>
</div></div>

这是预期的行为还是我做错了什么?

最佳答案

我用不同的方式解决了这个问题(使用knitr创建md文件,然后创建md -> html):

text_input <- "markdown text"
library(knitr)

foo.html <- knit2html(text=text_input)

谢谢一辉。然而,正如我在下面的评论中指出的,生成的 html 仍然存在一些问题(仅适用于字符向量输入,而不是常规文件)。

关于r - Knitr:只有 block 输出是 html(其余部分保持 rmarkdown),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17095802/

相关文章:

r - 从 PowerPivot 导出数据

r - 将蒙特卡罗 p 值排列成不同样本大小和方差估计量的矩阵

r - 在 R data.table 中链接时设置键

r - ggplot2:从纵横比中排除图例

r - 添加从 Shiny 到 html markdown 的多个输出

r - 我可以将 R 中的两个彩色数据集与 ggplot2 组合起来并在组合图上保留它们的颜色吗?

r - knitr: block 中的代码意外地被包装

r - 如何使用 stargazer 或 xtable 忽略交互?

r - 如何使用Rmarkdown在.Rrmd中生成.html和.md并重命名它们?

r - 在 rmarkdown html 输出中添加 X-UA-Compatible