如何将我的 selectInput 链接到我的 DataTable 以根据选择更新表? (这是R闪亮)
Posted
技术标签:
【中文标题】如何将我的 selectInput 链接到我的 DataTable 以根据选择更新表? (这是R闪亮)【英文标题】:How can I link my selectInput to my DataTable to update the table based on the selections? (this is R Shiny) 【发布时间】:2021-10-25 21:28:30 【问题描述】:具体来说,我使用的是pickerInput(类似于selectInput)和一个renderDataTable。
这是应用程序的外观(您可以看到我试图让过滤器更新数据表的位置 - 如果我选择“setosa”,表应该更新为仅包含 setosa 行):
这是我的最小可重现代码:
library(shiny)
library(data.table)
results <- iris
results$Species <- as.character(results$Species)
# UI
ui <- fluidPage(
# Application title
titlePanel(
h1("Iris Table", align="center")
),
fluidRow(
column(3,
pickerInput("speciesInput", "Species", choices=unique(results$Species), options = list(`actions-box` = TRUE), selected=NULL, multiple=TRUE)
),
column(9,
DT::dataTableOutput('table')))
)
# Server
server <- function(input, output)
output$table <- DT::renderDataTable(
DT::datatable(#filter='top',
escape = FALSE,
iris
))
# Run the application
shinyApp(ui = ui, server = server)
【问题讨论】:
【参考方案1】:试试这个
library(shiny)
library(data.table)
results <- iris
results$Species <- as.character(results$Species)
# UI
ui <- fluidPage(
# Application title
titlePanel(
h1("Iris Table", align="center")
),
fluidRow(
column(3,
pickerInput("speciesInput", "Species", choices=unique(results$Species), options = list(`actions-box` = TRUE), selected=NULL, multiple=TRUE)
),
column(9,
DT::dataTableOutput('table')))
)
# Server
server <- function(input, output)
mydata <- reactive(
if (is.null(input$speciesInput)) df <- results
else df <- results[results$Species %in% input$speciesInput,]
df
)
output$table <- DT::renderDataTable(
datatable(mydata())
)
# Run the application
shinyApp(ui = ui, server = server)
【讨论】:
完美!有没有办法扩展它以使反应功能适用于多个 pickerInput 过滤器?例如,我有 3 个pickerInputs 而不是物种的 1 个。 当然。看看这个answer。您只需将selectInput
替换为pickerInput
并进行一些小调整。
另外,this 可能会有所帮助。以上是关于如何将我的 selectInput 链接到我的 DataTable 以根据选择更新表? (这是R闪亮)的主要内容,如果未能解决你的问题,请参考以下文章
使用 otest 调试测试时,如何将我的可执行文件链接到我的测试包?
我无法将我的 pygame 游戏链接到我的 tkinter GUI
正确地将我的按钮链接到我的视图(在 UINavigationController 中)?
在闪亮中将 selectInput 与 sliderInput 链接起来