2016-07-12 9 views
0

私は光沢を使ってドロップダウンボックスで選択された状態の棒グラフを作成しようとしています。私はRにはかなり新しいので、さまざまな例を試してみました。私は3つの変数(状態、クレーム#、合計$)を持ち、各状態について5つの値があります。したがって、このような何か:Shinyを使用して状態別に棒グラフを表示する

state <- c("PA", "TX", "NY") 
claim_num <- c(1:15) 
total <- sample(1000:5000, 15) 
df <- (state, claim_num, total) 

私はhttps://beta.rstudioconnect.com/jjallaire/shiny-embedding/#inline-appに似た何かをしたいが、私は、NASの多くを持っているであろうから、私はそれに私のデータをフォーマットすることができたかどうかはわかりません。

答えて

1

このような意味ですか(この例をダウンロードして実行できますか?)

library(shiny) 

ui <- shinyUI(
    fluidPage(
    titlePanel("Sample Shiny App"),  
    sidebarLayout(
     sidebarPanel(
     uiOutput("stateInput") 
    ), 
     mainPanel(
     plotOutput("statePlot") 
    ) 
    ) 
)) 

server <- shinyServer(function(input, output) { 
    state <- sample(state.abb, 3, replace = FALSE) 
    total <- sample(1000:5000, 15) 
    claimNumber <- 1:15 
    data <- data.frame(state, total, claimNumber) 

    output$stateInput <- renderUI({ 
    selectInput(
     inputId = "state", 
     label = "Select a State:", 
     choices = levels(data$state) 
    ) 
    }) 

    output$statePlot <- renderPlot({ 
    hist(data$total[data$state == input$state]) 
    }) 
}) 

shinyApp(ui = ui, server = server) 

私たちは私たちのデータフレームに利用できるユニークな状態のリストを取り、UIのドロップダウンとしてレンダリングする私たちのselectInputにそれらを渡してやっています。ここから、ユーザがinput$stateオブジェクトを通じて選択した値にアクセスできます。より一般的には、inputIdと定義したものに基づいて入力にアクセスできます(この具体的なケースでは、stateと呼びます)。

ユーザー入力を取得すると、ユーザー定義状態に対応する値のみを返すようにデータフレームをサブセット化できます。この場合、合計値を出力としてレンダリングするプロットに渡します。

関連する問題