You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将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)

数据筛选

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
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 20:10:45