2017-03-01 5 views
0
ui <- fluidPage(
    checkboxGroupInput("data", "Select data:", 
         c("Iris" = "iris", 
         "Cars" = "mtcars")), 
    plotOutput("myPlot") 
) 

    server <- function(input, output) { 
    output$myPlot <- renderPlot({ 
     plot(Sepal.Width ~ Sepal.Length, data = input$data) 
    }) 
    } 

    shinyApp(ui, server) 

私は、ユーザーにデータセットを選択させたいshinyAppを持っています。そこから、そのデータセットを使って簡単なプロットを作成したいと思います。ただし、チェックボックスへのユーザー入力がserverに正常に渡されなかったようです。どうすればこの問題を回避できますか?R shinyappチェックボックスから事前に保存されたデータセットを選択する

光沢でこれを行う典型的な方法は、switch()です。つまり、入力にデータセットを指定する必要はありません。サーバーですべて行うことができます。あなたはこの仕事をするより柔軟な方法になりcheckboxGroupInput、内の任意の文字列を使用することができ

library(shiny) 
ui <- fluidPage(
    checkboxGroupInput("data", "Select data:", 
        c("Iris" = "iris", 
         "Cars" = "mtcars")), 
    plotOutput("myPlot") 
) 

server <- function(input, output) { 
    dat <- reactive({ 
    switch() 
    }) 
    output$myPlot <- renderPlot({ 
    dat <- switch(input$data, 
        "iris" = iris, 
        "mtcars" = mtcars) 
    plot(Sepal.Width ~ Sepal.Length, data = get(input$data)) 
    }) 
} 

shinyApp(ui, server) 

注:お使いの文脈で。

+0

'input $ data'は、データセット' iris'ではなく、文字ベクトル '' iris ''を返します。プロット関数で、この 'data = data(input $ data)'に変更して、指定されたデータセット – Jean

+0

@ waterlingを読み込みます。はい、私はそれにも気付きました。残念ながらあなたの提案はうまくいかなかった。私は同じエラーを受け取ります: '無効な' envir '引数'文字 'の引数 – Adrian

+0

hm ok。 'get(input $ data)'を試してください。それは私のために働く。 ' – Jean

答えて

0
+0

ありがとうございました。これは完全に機能しました。 – Adrian

関連する問題