能否将Shiny的筛选表格选点功能转换为flexdashboard?
需求实现说明:Shiny功能迁移至flexdashboard
这个需求完全可以实现,flexdashboard支持整合Shiny交互组件,包括shinyWidgets的多条件筛选、DT交互式表格以及动态绘图功能。以下是迁移后的完整可运行代码:
--- title: "Cars Data Explorer" runtime: shiny output: flexdashboard::flex_dashboard: orientation: columns vertical_layout: fill --- ```{r setup, include=FALSE} library(flexdashboard) library(DT) library(shinyWidgets)
Sidebar {.sidebar}
数据筛选
selectizeGroupUI( id = "my-filters", params = list( var_one = list(inputId = "speed", title = "Speed", placeholder = 'select'), var_two = list(inputId = "dist", title = "Distance", placeholder = 'select') ) )
Column {data-width=500}
筛选后数据
res_mod <- callModule( module = selectizeGroupServer, id = "my-filters", data = cars, vars = c("speed", "dist") ) DT::renderDataTable(res_mod(), server = TRUE, selection = 'single')
Column {data-width=500}
数据散点图
renderPlot({ row_selected = input$x1_rows_selected par(mar = c(4, 4, 1, .1)) plot(cars) if (length(row_selected) > 0) { points(res_mod()[row_selected, ], pch = 19, cex = 2, col = "red") } })
### 关键实现要点: - 文档开头声明`runtime: shiny`,启用flexdashboard的Shiny交互能力 - 保留原Shiny模块`selectizeGroupServer`的调用逻辑,实现多条件联动筛选 - DT表格保持`selection = 'single'`配置,通过`input$x1_rows_selected`获取用户选中的行索引 - 绘图逻辑与原Shiny代码一致,基于筛选后的数据集高亮选中的数据点(额外添加红色增强辨识度) 内容的提问来源于stack exchange,提问作者Richard Martin
相关产品推荐
相关产品推荐

