2016-10-02 7 views
0

Shinyアプリケーションでは、サーバー上でradioButtonを動的に作成し、renderUIを使用してこれをクライアントに渡します。今私は、さらなる処理のためにradioButtons(選択された項目)の応答を返す問題があります。私の問題の剥奪されたバージョンの下に。Shinyのダイナミックラジオボタンを使用

library(shiny) 

ui <- shinyUI(pageWithSidebar( 
    headerPanel("test dynamic radio buttons"), 
    sidebarPanel( 
    ), 
    mainPanel( 
     x <- uiOutput('radioTest'), 
     actionButton('submit', label = "Submit"), 
     br(), 
     print(paste("Radiobutton response is:", "reply()")), 
     textOutput('text') 
    ) 
)) 

server <- shinyServer( 
    function(input, output) { 
     output$radioTest <- renderUI({ 
      options <- c("item 1", "item 2", "item 3") 
      # The options are dynamically generated on the server 
      radioButtons('reply', 'What item do you select ?', options, selected = character(0)) 
     }) 
     observe({ 
      input$submit 
      isolate(
       output$text <- renderText({ 
        paste("Radiobutton response is:", "reply()") 
       }) 
      ) 
     }) 
    } 
) 

# Run the application 
shinyApp(ui = ui, server = server) 

答えて

1

次のようなものが欲しいですか?

library(shiny) 

ui <- shinyUI(pageWithSidebar( 
    headerPanel("test dynamic radio buttons"), 
    sidebarPanel( 
), 
    mainPanel( 
    x <- uiOutput('radioTest'), 
    actionButton('submit', label = "Submit"), 
    br(), 
    #print(paste("Radiobutton response is:", "reply")), 
    textOutput('text') 
) 
)) 

server <- shinyServer( 
    function(input, output) { 
    output$radioTest <- renderUI({ 
     options <- c("item 1", "item 2", "item 3") 
     # The options are dynamically generated on the server 
     radioButtons('reply', 'What item do you select ?', options, selected = character(0)) 
    }) 
    observe({ 
     input$submit 

     isolate(
     output$text <- renderText({ 
      paste("Radiobutton response is:", input$reply) 
     }) 
    ) 
    }) 
    } 
) 

# Run the application 
shinyApp(ui = ui, server = server) 

enter image description here

+0

おかげSandipan。これは確かに意図です。残りの問題は、コードがSubmitボタンの応答を観察することですが、別のオプションをアクティブにするたびに入力$ replyの独立した値はただちに変更されます。送信ボタンが有効になるまで、ラジオボタンの反応を遅らせるにはどうすればいいですか? デバッグから私は出力を見ることができます$テキストレンダリングは、アプリケーションを起動した直後に実行されます(待ちません) – Paul

+0

私は応答の問題を解決しました。以下のコードを参照してください。正しい方向に向いてくれてありがとう。 観察({ 入力$ 分離株(テキスト<提出 - ペースト( "ラジオボタンの応答は次のとおりです。"、入力$応答)) 出力$テキスト< - renderText({テキスト}) })について – Paul

+0

素晴らしい、ありがとう更新されたコード –

関連する問題