我喜欢 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 包美观的好处。
尝试像这样添加
opt_interactive()
:
output$Table <- render_gt({
gt_table |>
opt_interactive(use_search = T,use_filters = T)
})
但是,我相信这不是
gt_theme_nytimes()
的选项,因此您需要将其注释掉。