繁体   English   中英

如何在R-Markdown中使用R Chunk中的LaTeX代码?

[英]How to use LaTeX Code in R Chunk in R-Markdown?

我目前正在使用rmarkdown编写报告,因此我想在ar代码块中创建部分。 我发现在cat()和results =“asis”的帮助下这是可能的。 我的解决方案的问题是,我的R代码结果和代码没有像往常一样正确显示。

例如

---
title: "test"
output: pdf_document
---

```{r, results='asis'}
for (i in 1:10) {
  cat("\\section{Part:", i, "}")
  summary(X)
  $\alpha = `r X[1,i]`$  
}
```

几乎可以解决问题,但这里仍有两个问题:

  • summary()的R输出显示得非常奇怪,因为我猜它被解释为LaTeX代码
  • 我不能在这个环境中使用LaTeX公式,所以如果我希望每个部分以一个方程结束,也可能使用R变量,这是不可能的

有人知道某些问题的解决方案,或者是否有一个解决方法来在循环中创建部分并在本节中包含R代码,R输出和LaTeX公式? 或者至少其中一个是这样的?

我非常感谢各种建议

您可以在内联后执行您的操作,而无需依赖代码块。

作为一个最小的例子。

---
title: "test"
output: pdf_document
---

```{r sect1_prep, include=FALSE}
i <- 1
```

\section{`r paste0("Part: ", i)`}

```{r sect1_body}
summary(mtcars[, i])
```

$\alpha = `r mtcars[1, i]`$

```{r sect2_prep, include=FALSE}
i <- i + 1
```

\section{`r paste0("Part: ", i)`}

```{r sect2_body}
summary(mtcars[, i])
```

$\alpha = `r mtcars[1, i]`$

生产...

在此输入图像描述

如果你真的想要一个部门工厂 ,你可以考虑pander

---
title: "test"
output: pdf_document
---

```{r setup, include=FALSE}
library(pander)
panderOptions('knitr.auto.asis', FALSE)
```

```{r, results='asis', echo=FALSE}

empty <- lapply(1:10, function(x) {

  pandoc.header(paste0("Part: ", x), level = 2)
  pander(summary(mtcars[, x]))
  pander(paste0("$\\alpha = ", mtcars[1, x], "$\n"))

})

```

产生......

在此输入图像描述

删除摘要表格式示例

---
title: "test"
output: pdf_document
---

```{r setup, include=FALSE}
library(pander)
panderOptions('knitr.auto.asis', FALSE)
```

```{r, results='asis', echo=FALSE}

content <- lapply(1:10, function(x) {

  head <- pandoc.header.return(paste0("Part: ", x), level = 2)
  body1 <- pandoc.verbatim.return(attr(summary(mtcars[, x]), "names"))
  body2 <- pandoc.verbatim.return(summary(mtcars[, x]))
  eqn <- pander_return(paste0("$\\alpha = ", mtcars[1, x], "$"))

  return(list(head = head, body1 = body1, body2 = body2, eqn = eqn))

})

writeLines(unlist(content), sep = "\n\n")
```

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM