Как визуализировать непосредственно в HTML-файл RMD, который содержит knit_expand - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть два файла Rmd

main.Rmd

---
title: "Report"
author: "User"
output:
    flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
---


```{r setup, include=FALSE}
library(flexdashboard)
library(highcharter)
library(htmlwidgets)
library(lubridate)
library(knitr)
```


```{r run-numeric-md, include=FALSE}
warehouse <- data.frame("id" = c("WARE-01", "WARE-02", "WARE-03"))
warehouse$group <- c("1", "2", "3")
out = NULL
for (row in 1:nrow(warehouse))
    {
        out = c(out, knit_expand
            (
                'template.Rmd', 
                warehouse_id = warehouse[row, "id"],
                warehouse_group = warehouse[row, "group"]
            )
        )
    }
```


`r paste(knit(text = out), collapse = '\n')`

и template.Rmd, используемые для команды knit_expand

Sales revenue net / {{warehouse_id}} {data-navmenu={{warehouse_group}}}
=====================================

Column {data-width=500}
-------------------------------------
### {data-height=100}

```{r}
valueBox("Sales revenue net",
         caption = paste("Item UPC:<b>", "</b> :: Contractor ID:<b>", "</b> :: Warehouse ID:<b>","{{warehouse_id}}" ,"</b>"))
```

### {data-height=900}



Column {data-width=500}
-------------------------------------

### {data-height=500}

### {data-height=500}

Выполнение knit для flex_dashboard из меню IЯ могу произвести необходимый вывод.Однако я хотел бы выполнить main.rmd из файла скрипта r, используя

rmarkdown::render(
    input = "main.Rmd", 
    output_file = "main.html",
    output_format = "all")

Однако, когда я выполняю код r (см. Выше), я получаю ошибку

Ошибка в do.call (output_format_func, options): второй аргумент должен быть списком

Есть идеи, что я делаю неправильно?

1 Ответ

0 голосов
/ 18 февраля 2019

Либо используйте output_format = "flex_dashboard", либо добавьте аргумент output_options=list(), чтобы он получил список ожидаемых параметров:)

rmarkdown::render(
    input = "main.rmd", 
    output_file = "main.html",
    output_format = "all", output_options = list())

или

rmarkdown::render(
    input = "main.rmd", 
    output_file = "main.html",
    output_format = "flex_dashboard")
...