現在、rmarkdownを使用してレポートを作成しているため、rコードチャンク内にセクションを作成します。これが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]`$
}
```
ほとんどのトリックを行いますが、ここにはまだ2つの問題があります。
誰かがこれらの問題のいくつかの解決策を知っていますか、またはループ内にセクションを作成し、このセクションにRコード、R出力、およびLaTeX式を含めるための回避策さえありますか?それとも、それらのうち少なくとも1つですか?
いろいろなアドバイスをありがとう
コードブロックにそれほど依存することなく、インラインの後にあることを実行できます。
最小限の例として。
---
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]`$
生産する...
セクションfactoryが本当に必要な場合は、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")
```