使用 gt 而不是 DT 在闪亮中创建反应式表

问题描述 投票:0回答:1

我喜欢 gt 包允许您在表格中实现的自定义功能。然而,即使我能够创建一个满足我的需求的静态表,但当涉及到使该表动态化时,我无法使用 gt 包来做到这一点。

下面是静态表的代码和shiny的gt包命令。本质上,我希望能够让“manufacturer”、“trans”、“class”和“displ”字段成为闪亮的反应字段,其中如果您单击它们,您可以选择其中一个选项,并且包含结果的表也会相应更改。我想做的但使用 DT 包的示例如下:

https://shiny.posit.co/r/gallery/widgets/basic-datatable/

gt闪亮表代码:

library(shiny)
library(tidyverse)
library(gt)
library(gtExtras)
 
 
# Creating my static table
 
gt_table <- mpg |>
    group_by(manufacturer) |>
    gt() |>
    gt_theme_nytimes() |>
    gt_highlight_rows(
        rows = class == "suv",# a logic statement
        fill = "#D3B1E0",
        bold_target_only = TRUE,
        target_col = class
    ) |>
    fmt_number(
        columns = displ,
        decimals = 2,
        use_seps = FALSE
    ) |>
    gt_plt_bar(column = displ, keep_column = FALSE, width = 45,
               color = "#800080",
               scale_type = "number") |>
    tab_header(
        title = "Cars data set",
    ) |> cols_label(
        manufacturer = "Brand",
        trans = "Type of transmission",
        class = "Type of car",
        displ = "Engine Displacement")
 
# Turning the static table into a dynamic table
 
ui <- fluidPage(titlePanel("Cars data set"),
                mainPanel(width = 12,
                          gt_output(outputId = "Table")
                ))
 
server <- function(input, output) {
    output$Table <- render_gt(expr = gt_table)
}
 
# Run the application
shinyApp(ui = ui, server = server)

我希望有人可以提供帮助,因为我无法找出使数据集中的变量具有反应性的代码,同时保持 gt 包美观的好处。

r shiny shinydashboard shiny-reactivity gt
1个回答
0
投票

尝试像这样添加

opt_interactive()

  output$Table <- render_gt({
    gt_table |>
      opt_interactive(use_search = T,use_filters = T)
  })

但是,我相信这不是

gt_theme_nytimes()
的选项,因此您需要将其注释掉。

© www.soinside.com 2019 - 2024. All rights reserved.