A.S*_*.Sh 4 pdf r rstudio r-markdown
我在RStudio工作了一门课程,我想用R markdown写下我的报告.我想在pdf中显示某些控制台输出作为报告,特别是输出的summary(model)位置model,例如使用该命令获得的线性模型lm.然而,默认情况下,控制台输出在转换为带有knitr的pdf之后,按原样显示,并带有"#" - 前面的符号,这对我来说既丑陋也很麻烦,在调整时也很麻烦报告的最终布局.
是否有更好的方式来显示控制台输出,特别是在将我的笔记本转换为pdf时?理想情况下,我想像输出周围的框(HTML转换似乎只是给你),并且最佳地能够添加标题来说明输出代表什么.最重要的是,没有恼人的'#' - 每一行都有标志.
我试过在这里搜索并搜索解决方案,但我没有找到解决我问题的任何东西.
这是一个解决方法.我们的想法是在文本中转换控制台输出,您可以根据需要绘制和自定义.
---
title: "Untitled"
output:
pdf_document: default
---
```{r, echo = F}
print_output <- function(output, cex = 0.7) {
tmp <- capture.output(output)
plot.new()
text(0, 1, paste(tmp, collapse='\n'), adj = c(0,1), family = 'mono', cex = cex)
box()
}
```
```{r, warning = F}
lm <- lm(mpg ~ hp, data = mtcars)
print_output(summary(lm))
```
Run Code Online (Sandbox Code Playgroud)
去掉 ## 是 rmarkdown 中的一个显示选项,它适用于整个文档的第一个代码块中的comment = ""任何块或opts_chunk$set(comment=NA)。
此外,您应该查看 pander 包以获取“漂亮”的输出打印。
这是使用knitr hooks 的另一种方法。我们只是在块输出周围包装额外的 LaTeX 命令。
目录:
framed。fancyvrbframed。---
title: "Output Hook"
output: pdf_document
---
```{r setup, include = F}
library(knitr)
opts_chunk$set(comment=NA)
def_hook <- knit_hooks$get("output")
knit_hooks$set(output = function(x, options) {
out <- def_hook(x, options)
return(paste("\\begin{framed}\\begin{verbatim}", x, "\\end{verbatim}\\end{framed}", collapse = "\n"))
})
```
```{r}
lm(mpg ~ hp, data = mtcars)
```
Run Code Online (Sandbox Code Playgroud)
fancyvrb您甚至可以使用 latex 包以非常灵活的方式修改结果fancyvrb(有关选项,请参阅此文档):
---
title: "Output Hook"
output: pdf_document
header-includes:
- \DefineVerbatimEnvironment{myVerb}{Verbatim}{numbers=left,numbersep=1mm,frame=lines,framerule=0.4mm,rulecolor=\color{blue}}
---
```{r setup, include = F}
library(knitr)
opts_chunk$set(comment=NA)
def_hook <- knit_hooks$get("output")
knit_hooks$set(output = function(x, options) {
out <- def_hook(x, options)
return(paste("\\begin{myVerb}\n", x, "\\end{myVerb}", collapse = "\n"))
})
```
```{r}
lm(mpg ~ hp, data = mtcars)
```
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2404 次 |
| 最近记录: |