微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用乳胶在 rmakdown 中循环?

如何解决如何使用乳胶在 rmakdown 中循环?

我想结合 rmarkdown 和 latex 并循环遍历数据集列。有什么方法可以处理下面的代码

```{r}

for (i in 1:10){
  
\begin{itemize}

\item i

\end{itemize}

}
```

解决方法

您可以使用 pgffor 包来创建循环:

---
output:
  pdf_document: 
    keep_tex: true
header-includes:
- \usepackage{pgffor}
---

\begin{itemize}
\foreach \x in {1,...,10}{
  \item \x
}
\end{itemize}
,

一种解决方法

```{r,echo=FALSE,results='asis'}
dfex <- data.frame(x=letters[1:10],y=LETTERS[1:10])

cat("\\begin{itemize}")
for(i in 1:nrow(dfex)){
  cat(paste("\\item",dfex[i,1]))  
}
cat("\\end{itemize}")
```

重要的是要注意:results='asis'cat 确保它是作为干净的乳胶输出而不是 R 输出生成的。需要 double \\ 来明确说明它是我们想要的反斜杠而不是一些特殊字符,例如\i

无需 result='asis' 使用 (knitr::asis_output) 的示例

```{r,echo=FALSE}
latexItemize <- function(items){
  knitr::asis_output(paste0(
    "\\begin{itemize}",paste("\\item",items,collapse=" "),"\\end{itemize}"
  ))

}
```


```{r,echo=FALSE}
latexItemize(dfex[,2])
```

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。