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

如何为R语言中的Reactable表格设置默认筛选值

Reactable设置表格加载时默认筛选值

要实现表格加载时Manufacturer列默认筛选为Acura,需要对原代码做两处修改:

  1. 在自定义下拉筛选框中,给Acura对应的<option>标签添加selected属性,确保下拉框默认显示选中Acura;
  2. 添加初始化脚本,在表格渲染完成后自动执行筛选操作,确保表格数据默认过滤出Acura的记录。

修改后的完整代码如下:

library(reactable); library(htmltools)

data <- MASS::Cars93[, c("Manufacturer", "Model", "Type", "Price")]

# 组合表格和初始化脚本
tagList(
  reactable(
    data,
    filterable = TRUE,
    columns = list(
      Manufacturer = colDef(
        filterInput = function(values, name) {
          tags$select(
            onchange = sprintf("Reactable.setFilter('cars-select', '%s', event.target.value)", name),
            # 遍历唯一值,给Acura的option添加selected属性
            lapply(unique(values), function(val) {
              tags$option(val, selected = ifelse(val == "Acura", NA, NULL))
            }),
            style = "width: 100%; height: 28px;"
          )
        }
      )
    ),
    defaultPageSize = 5,
    elementId = "cars-select"
  ),
  # 添加初始化脚本,页面加载后执行筛选
  tags$script(HTML("
    document.addEventListener('DOMContentLoaded', function() {
      Reactable.setFilter('cars-select', 'Manufacturer', 'Acura')
    })
  "))
)

代码说明

  • 第一处修改:在生成<option>时,通过ifelse判断当前值是否为Acura,若是则添加selected属性,让下拉框默认选中该选项;
  • 第二处修改:利用DOMContentLoaded事件,在页面加载完成后调用Reactable.setFilter方法,手动触发筛选,确保表格数据默认只显示Manufacturer为Acura的记录。

内容的提问来源于stack exchange,提问作者Morts81

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 07:18:20