以下是Rstudio主页上着名的example shinyapp。
ui.R
在网页中定义两个tabPanel。第一个标签呈现地图,第二个标签用于根据selectInput
从完整日期表中选择日期。
部分代码:
...
tabPanel("Data explorer",
fluidRow(
column(3,
selectInput("states", "States", c("All states"="", structure(state.abb, names=state.name), "Washington, DC"="DC"), multiple=TRUE)
),
column(3,
conditionalPanel("input.states",
selectInput("cities", "Cities", c("All cities"=""), multiple=TRUE)
)
),
column(3,
conditionalPanel("input.states",
selectInput("zipcodes", "Zipcodes", c("All zipcodes"=""), multiple=TRUE)
)
)
),
fluidRow(
column(1,
numericInput("minScore", "Min score", min=0, max=100, value=0)
),
column(1,
numericInput("maxScore", "Max score", min=0, max=100, value=100)
)
),
hr(),
DT::dataTableOutput("ziptable")
),
...
我不知道哪一行代码定义了变量state.name
和state.abb
,它们在上面第4行中使用。
层次结构选择功能在这里非常简单。为什么在第二个和第三个choices
函数中没有selectInput
它可以正常工作。
https://github.com/rstudio/shiny-examples/blob/master/063-superzip-example/ui.R
答案 0 :(得分:0)
state.abb
和state.name
它存在于R中的数据集,请参阅?state.abb
还有Server.r. 与
observe({
cities <- if (is.null(input$states)) character(0) else {
filter(cleantable, State %in% input$states) %>%
`$`('City') %>%
unique() %>%
sort()
}
stillSelected <- isolate(input$cities[input$cities %in% cities])
updateSelectInput(session, "cities", choices = cities,
selected = stillSelected)
})
所以选择改变动态从serever方面