首页 > 解决方案 > 如何设置正在运行的 R flexdashboard 中的列数

问题描述

我的问题是适用于 R flexdashboards的Generate Dynamic R Markdown Blocks 问题的扩展。

我用一个数字输入制作了一个简单的 flexdashboard:要在仪表板正文中呈现的列数。当我修改这个数字输入时,我希望列数会相应改变。

这是我的 flexdashboard.Rmd 文件:

---
title: "Dynamic columns"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
runtime: shiny
---

```{r setup, include=FALSE}
library(shiny)
library(knitr)
library(flexdashboard)
```

Column {.sidebar data-width=130}
-----------------------------------------------------------------------

```{r}
numericInput(
  "ncols", 
  label = "number of columns", 
  value = 3
  ) 
```

```{r column_generator, include=FALSE}
output <- reactive({
  out <- NULL
  for (i in 1:input$ncols) {
    out <- c(out, knit_expand(text = "### column: {{i}}"))
  }
  out
})
```

Column {data-width=650}
-----------------------------------------------------------------------

`r reactive({paste(knit(text = output()), collapse = '\n')})`

我相信我已经接近解决方案,因为我在我的 flexdashboard 正文中得到以下输出:

列:1 ### 列:2 ### 列:3

但是,此文本不会由 呈现为三列knit()

标签: rshinyflexdashboard

解决方案


推荐阅读