簡體   English   中英

在 rmarkdown::render 不工作的循環中打印 gt 表

[英]Printing gt table inside a loop with rmarkdown::render not working

我正在編寫一個導出 html 的報告生成器。我使用兩個文件,第一個是確定報告數量的循環,在 my.Rmd 模板中我有另一個循環來打印多個表格。

下面的.Rmd,工作正常

    ---
title: "Report"
author: "Me"
date: "`r format(Sys.time(), '%d de %B de %Y')`"
output:
  html_document
---

# First Section


```{r , results='asis', echo=FALSE, message=FALSE}
library(tidyverse)
library(gt)

i=1

df <- cbind(m=c(rep(1,16),rep(2,16)),mtcars)

gears <- unique(df$gear)

for(g in gears)
{
  cat("## gear", g, "\n")
  
  print(
  df %>% filter(gear==g & m==i) %>%
    gt()
  )
}

output 在此處輸入圖像描述

但是如果從外部文件調用它並渲染表不顯示

library(tidyverse)
library(gt)

df <- cbind(m=c(rep(1,16),rep(2,16)),mtcars)

for (i in 1:2) 
{

  rmarkdown::render(
    'report_template_2.Rmd', output_file = paste0("report", 
                                                    "_",i, 
                                                  '.html'), encoding="UTF-8")
}

在此處輸入圖像描述

通常的htmltools::tagList技巧似乎有效。
沒有深入研究render內部以試圖理解為什么它的行為與手動編織不同。

---
title: "Report"
author: "Me"
date: "`r format(Sys.time(), '%d de %B de %Y')`"
output:
  html_document
---

# First Section

```{r,eval=F,echo=F}
gt(mtcars)
```


```{r , results='asis', echo=FALSE, message=FALSE}
library(tidyverse)
library(gt)

i=1

df <- cbind(m=c(rep(1,16),rep(2,16)),mtcars)

gears <- unique(df$gear)

l <- list()
i<-1
for(g in gears)
{
  cat("## gear", g, "\n")
  
  print(htmltools::tagList(df %>% filter(gear==g & m==i) %>% gt()))

}

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM