2017-05-06 20 views
0

私は最初のShinyアプリケーションで作業していますが、ユーザーが表示するデータフレームの列を選択できるリアクティブバープロットとテーブルを作成しようとしています。アプリを実行してください。シャイニーエラー:バープロットに有限のxlim値が必要

error: need finite 'xlim' values appear

私のデータにはNAは含まれていません。データフレームです。通常のrコマンドを使用して非反応性グラフを作成できます。

私のコードは、コンソールが助けを

Warning in min(w.l) : no non-missing arguments to min; returning Inf 
Warning in max(w.r) : no non-missing arguments to max; returning -Inf 
Warning in min(x) : no non-missing arguments to min; returning Inf 
Warning in max(x) : no non-missing arguments to max; returning -Inf 
Warning: Error in plot.window: need finite 'xlim' values 
Stack trace (innermost first): 
    79: plot.window 
    78: barplot.default 
    77: barplot 
    76: renderPlot 
    68: output$bar_1 
    1: runApp 

感謝を示し、この

library(shiny) 
ui <- fluidPage( 
    plotOutput(outputId = "bar_1"), 
    tableOutput(outputId = "table_1"), 
    selectInput("variable", "Select variable", c("colA"="colA", "colB"="colB", "colC"="Col C")) 
) 

server <- function(input, output) { 
    output$bar_1<-renderPlot(barplot(table(Book1$'input$variable'))) 
    output$table1<-renderTable(table(Book1$'input$variable')) 
} 

shinyApp(ui = ui, server = server) 

のように見えます!

答えて

0

最小限の再現可能な例として、出力がdput(head(Book1))であると便利です。 そのようにすれば助けがさらに簡単になります

しかし、あなたの場合は、列の索引付けのようです。次

server <- function(input, output) { 
    output$bar_1<-renderPlot(barplot(table(Book1[input$variable]))) 
    output$table1<-renderTable(table(Book1[input$variable])) 
} 

またはもう少し効率的に

server <- function(input, output) { 
    current.data <- table(Book1[input$variable]) 
    output$bar_1<-renderPlot(barplot(current.data)) 
    output$table1<-renderTable(current.data) 
} 
+0

あなたは二重の角括弧内の入力$変数を配置する必要があるかもしれません(すなわち、BOOK1 [[入力$変数]])このためには、動作するようにしてみてください。アプリケーションがもっと大きくなるならば、Book1 [[input $ variable]]を独自の反応式に動かすことも考えなければなりません。これは、入力更新ごとに1回のみ操作を実行する必要があるためです。それは現在2回それをやっている。 – Gladwell

+0

どうすればいいのか説明できますか?ありがとう –

+0

それは働いた!なぜ機能が応答しているときに$なしで角括弧を使用しなければならないのですか?チュートリアルで寝たの? –

関連する問題