r - 如何设置正在运行的 R flexdashboard 中的列数
问题描述
我的问题是适用于 R flexdashboards的Generate Dynamic R Markdown Blocks 问题的扩展。
我用一个数字输入制作了一个简单的 flexdashboard:要在仪表板正文中呈现的列数。当我修改这个数字输入时,我希望列数会相应改变。
对于静态情况,在开始时设置列数,在引用的问题中提供了解决方案。
对于动态情况,列数由 设置
shiny::numericInput()
,我尝试通过将 R 代码包装在reactive({})
语句中来修改此解决方案。
这是我的 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()
。
解决方案
推荐阅读
- go - 具有多个通道的多个 goroutine 的死锁
- javascript - 我无法在 Express 服务器中加载我的静态 JS
- ruby-on-rails - 在 usersController 中找不到动作表演
- laravel - 在数据库中插入新记录时发送电子邮件
- hyperledger-composer - Fabric 和 Composer 版本升级后启动 hyperledger-composer 网络时出错
- reactjs - 从父组件推送到反应路由器历史
- python - 如何从字符串中删除某些字符并将它们分解
- mysql - 如何通过 DataGrip 每 100 行创建一个 sql 插入语句
- google-cloud-storage - mb 命令需要一个指定存储桶的 URL
- python - 打印出所有以“.txt”结尾的标题(Python)