2017-03-23 17 views
0

アクションボタンを押したときに何とか2つの入力を同じにしたい。 Shiny Dashboardにはいくつかのタブがあり、タブの中には繰り返しデータ入力があります。たとえば、タブ1にはAGEの入力があり、タブ2には同じ入力があります。年齢の値を入力して「実行」(アクションボタン)をクリックすると、自動的に他のタブの年齢は現在のタブの年齢と同じです。Rシャイニー2つの入力を同じにする

私はシャイニーの使用に本当に新しいので、私は、反応性のコマンドを使用してのいくつかの試みをしたが、それが動作していない理由を私はよく分からない:

reactive( 
if(input$runbutton==0){ 
input$numeric1=input$numeric2 
}) 

このコードは効果がありません、それはエラーを返さない。

+1

'updateNumericInput()'を試してみてはいかがですか? –

答えて

3

入力の値を変更するには、updateNumericInput()を使用する必要があります。また、observeEvent()を使用してボタンの押下を追跡する方が理にかなっています。ここで簡単なサンプルアプリケーション

ui <- fluidPage(
    numericInput("numeric1","in1",1), 
    numericInput("numeric2","in2",2), 
    actionButton("runbutton", "set equal") 
) 

server <- function(input, output, session) { 
    observeEvent( input$runbutton, { 
     updateNumericInput(session, "numeric1", value=input$numeric2) 
    }) 
} 


shinyApp(ui=ui, server=server) 
+0

それは美しく動作します!どうもありがとうございます!今私はこれらの問題にどのように対処する必要があるかを見ることができます。それが大丈夫なら2つのことが不思議だった。まず、なぜ「セッション」を使うのですか?私はそれを調べましたが、実際に何が起こっているか私には分かりません。また、 'reactive'と 'observeEvent'の違いは何ですか?彼らは同じようなことをしているようですが、observeEventは私にとっては唯一のものです。 – BlueRhapsody

+1

'updateNumericInput'が必要とするため、セッションを使用する必要があります。あまりにもそれ以上のものではありません。もし、あなたがShinyを初めて使っていて、 'reactive'と' observeEvent'をもっとよく理解したいのであれば、[これらのトレーニングビデオ](https://www.rstudio.com/resources/webinars/shiny-開発者会議/)。これは、実際にコメントで対処できない大きな話題です。 – MrFlick

関連する問題