如何在R语言Flexdashboards中实现下拉选择联动的动态valueBox
问题修复点
- 数据框列名拼写不一致:创建数值向量时命名为
Column,构造数据框时误写为Coluna,导致后续列引用失效 - 缺少dplyr依赖加载:代码中用到的管道符
%>%、filter、select均属于dplyr包,需要显式加载 - 下拉框初始值设置不合理:原代码
selected设为空字符串,首次渲染时无匹配值会触发报错,改为默认选中第一个州即可 - 数值提取逻辑错误:筛选后使用
select(df$Column)会返回全量数据集的对应列,而非筛选后的结果,且返回格式为数据框,不符合valueBox的单值要求,改用pull()直接提取目标列的数值 - 缺少交互式面板必要配置:flexdashboard做动态交互需要在yaml头部声明
runtime: shiny,服务端渲染的代码块需要标注context="server"
修正后完整代码
--- title: 州数据统计面板 output: flexdashboard::flex_dashboard runtime: shiny --- ```{r setup, include=FALSE} library(flexdashboard) library(shiny) library(dplyr) UF = c('AC', 'AM', 'AP', 'BA', 'CE', 'ES', 'PB', 'PE') Column = c(30, 200, 7, 12, 854, 2, 78, 965) df <- data.frame(UF, Column)
Row {data-width=200 .sidebar}
selectInput(inputId = "states", label="选择州:", choices = unique(df$UF), selected = "AC", multiple=FALSE )
Row
renderValueBox({ b <- df %>% filter(UF %in% input$states) %>% pull(Column) valueBox(value = b, icon = "fa-users") })
内容的提问来源于stack exchange,提问作者Davi Lucena
相关产品推荐
相关产品推荐

