[问题] [shiny] 如何设计有阶层的input?

楼主: ardodo (米蟲)   2015-07-20 11:49:53
各位版友好,我现在想设计两个selectInput在我的shiny app上,
第一个input叫做厂牌,第二个input叫做型号
我想要在选择厂牌时(ex: w),第二个input的型号只剩下属于厂牌w的型号(ex:w123,w456)
选择厂牌s时,第二个input的型号只剩下属于厂牌s的型号(s99,s88)
同时我的output table可以跟着我选择的input互动
我目前的程式码只能做到选择厂牌时table有互动,选择input时table有互动,
还没办法做到第二个input随着第一个input的变化而跟着变化
以上是我的问题,若有描述不清的请告知我,以下是我的code
ui:
library(shiny)
shinyUI((fluidPage(
titlePanel("hirearchy data group"),
sidebarLayout
(
sidebarPanel
(
selectInput("brand",label="choice the brand",choices=c("all","w","s")),
selectInput("model",label="choice the
model",choices=c("all","w123","w456","s99","s88"))
),
mainPanel
(
dataTableOutput("table")
)
))))
server:
library(shiny)
## test dataframe
df <- data.frame(id = c("1","1","1","1","1","1","2","2","2","2"),
brand = c("w","w","w","s","s","s","w","w","w","s"),
model =
c("w123","w123","w456","s99","s88","s88","w123","w456","w456","s99"),
amount = c(10,9,7,8,6,4,7,3,2,8))
df$id=as.character(df$id)
df$brand=as.character(df$brand)
df$model=as.character(df$model)
shinyServer(function(input, output) {
output$table <- renderDataTable({
if(input$brand!="all") {df=df[which(df$brand==input$brand),]}
if(input$model!="all") {df=df[which(df$model==input$model),]}
df
})
})
作者: lofu (lofu)   2015-07-20 12:11:00
我也刚学,也想知道这种状况下的处理
作者: superalf (外星人)   2015-07-25 00:08:00

Links booklink

Contact Us: admin [ a t ] ucptt.com