2016-10-21 18 views
1

Rを使用してグラフアプリケーションを作成しようとしています。だから私は、ユーザーからのルート、停留所/旅行ID(搭乗、降り、または積み込み)の入力をユーザーから受け取ります。だから、ui.rは、その後、私は特定のルートとstop_idに搭乗し、それらのstop_idためbarplotを作成しようとして例えば集計値のためのデータを抽出しようとしていますタイプ 'closure'のオブジェクトはサブセット化できません:R shiny App

ui <- fluidPage(
    pageWithSidebar(
    headerPanel('FAST_TRIPS Visulization', windowTitle = "Fast_trips Visaualization"), 
    sidebarPanel(
     selectInput('route', 'Choose the Route No.', unique(y['route_id'])), 
     selectInput('id', 'Please Choose Stop or Trip ID', c('stop_id','trip_id')), 
     selectInput('rider', 'What do you wanna compare?', c('boarding', 'alighting', 'load')), 
     radioButtons('method','Please select your method', c('Sum', 'Average'))), 
    mainPanel(

     plotOutput('plot1') 

    ) 
) 
) 

です。 server.Rは

以下
server <- function(input, output, session) { 

    # Combine the selected variables into a new data frame 



    selectedData <- reactive({ 
    y[c('route_id', input$id, input$rider)] 

    }) 

    data <- reactive({ 
    subset(selectedData, route_id == input$route) 
    }) 
    a <- reactive({ 
    aggregate(input$rider~input$id,data,input$method) 
    }) 

    s <- reactive({input$rider}) 

output$plot1 <- renderPlot({barplot(a[s])}) 

} 

あるしかし、私は次のエラーを取得しています:

Error: object of type 'closure' is not subsettable 

これで私を助けてください。私は光り輝くために新しいです。

答えて

0

リアクティブ表現に関数としてアクセスする必要があるため、リアクティブ表現として作成された変数への呼び出しに()を追加する必要があります。

の代わりに:

subset(selectedData, route_id == input$route)

使用してみてください:

subset(selectedData(), route_id == input$route)

、あるいは問題を避けるために、余分な変数を使用します。

selectedData_ <- selectedData() 
subset(selectedData_, route_id == input$route) 

最後に、あなただけrenderPlotとして、他の反応式にそれを使用して、反応式に単一inputを配置する必要はありません。

s <- reactive({input$rider}) 
output$plot1 <- renderPlot({barplot(a[s])}) 

のみを使用し

output$plot1 <- renderPlot({ 
    a_ <- a() 
    barplot(a_[input$rider]) 
}) 

あなたがyための任意の代表的なデータを提供しなかったので、私は完全にあなたのコードをテストすることができませんでしたが、この回答がなければならないことに注意してくださいのInstedクロージャエラーを解決します。

関連する問題