r - 过滤器之间的双向反应性
问题描述
我有一个闪亮的应用程序,我在其中使用更新功能,以便过滤器相互反应。不确定代码中是否存在问题。此处的值未按预期反映(例如,“Rat”为 1,我们无法在另一个过滤器中选择“No”(“New”)有人可以帮我吗?
有没有替代方法?
library(shiny)
data_13_Sam <- data.frame(
Ratings = c(1,2,3,4,5,1,2,3,4,5), flag = c("Yes","No","Yes","No","Yes","No","Yes","No","Yes","Yes")
)
ui <- fluidPage(
column(offset = 0, width = 1,uiOutput("rat")),
column(offset = 0, width = 2, uiOutput("nt")),
tableOutput('data')
)
server <- function(input, output, session) {
output$rat <- renderUI({
selectInput("rat1",label = tags$h4("Rat"),choices = unique(data_13_Sam$Ratings))
})
output$nt <- renderUI({
selectInput("nt1",label = tags$h4("New"),choices = unique(data_13_Sam$flag))
})
observeEvent(input$rat1, {
updateSelectInput(session = session, inputId = "nt1", choices = unique(data_13_Sam$flag[data_13_Sam$Ratings == input$rat1]))
})
observeEvent(input$nt1, {
updateSelectInput(session = session, inputId = "rat1", choices = unique(data_13_Sam$Ratings[data_13_Sam$flag == input$nt1]))
})
}
shinyApp(ui, server)
解决方案
您的代码适用于shiny::selectInput
,并删除 secondupdateSelectInput(...)
请参阅下面的代码。
library(shiny)
data_13_Sam <- data.frame(
Ratings = c(1,2,3,4,5,1,2,3,4,5), flag = c("Yes","No","Yes","No","Yes","No","Yes","No","Yes","Yes")
)
ui <- fluidPage(
column(offset = 0, width = 1,uiOutput("rat")),
column(offset = 0, width = 2, uiOutput("nt")),
tableOutput('data')
)
server <- function(input, output, session) {
output$rat <- renderUI({
shiny::selectInput("rat1",label = tags$h4("Rat"),choices = unique(data_13_Sam$Ratings))
})
output$nt <- renderUI({
shiny::selectInput("nt1",label = tags$h4("New"),choices = unique(data_13_Sam$flag))
})
observeEvent(input$rat1, {
shiny::updateSelectInput(session = session, inputId = "nt1", choices = unique(data_13_Sam$flag[data_13_Sam$Ratings == input$rat1]))
})
# observeEvent(input$nt1, {
# shiny::updateSelectInput(session = session, inputId = "rat1", choices = unique(data_13_Sam$Ratings[data_13_Sam$flag == input$nt1]))
# })
}
shinyApp(ui, server)
推荐阅读
- javascript - 如何在 Vue 道具中使用对象传递 HTML 和特殊字符
- ios - 带有 UISegmentedControl 的 UIStackView
- arrays - SwiftUI MVVM如何迭代并获取数组的索引
- java - 如何获取 SMS 对话/线程列表?并在 ListView 中显示联系人姓名?
- rust - 为什么某些命令在 TMUX 中不起作用?
- neo4j - Neo4j ETL 从 RDBMS 迁移到 Graph 需要时间
- r - 如何将行值转换为 R 中的单个字符串?
- python - 不能在Python中划分两个字典
- java - 如何解决 Swagger UI 中的 500 Internal Server Error,服务未运行
- javascript - 避免在它消失之前再次单击html按钮(django)