1. ホーム
  2. r

[解決済み] ShinyのeventReactiveハンドラで複数のイベント式をリッスンする方法

2023-02-17 18:03:04

質問

私のアプリのさまざまなプロット/出力で使用されているデータの更新をトリガーするために、2つの異なるイベントが必要です。1 つは、ボタンがクリックされること ( input$spec_button ) で、もう1つはドット上の点がクリックされたとき ( mainplot.click$click ).

基本的には、両方を同時にリストアップしたいのですが、どのようにコードを書けばいいのかわかりません。今あるのはこんな感じです。

をserver.Rに書いています。

data <- eventReactive({mainplot.click$click | input$spec_button}, {
    if(input$spec_button){
      # get data relevant to the button
    } else {
      # get data relevant to the point clicked
    }
  })

しかし、if-else 節は動作しません。

Error in mainplot.click$click | input$spec_button : operations are possible only for numeric, logical or complex types

-->アクションコンバイナー関数のようなものはないでしょうか? mainplot.click$click | input$spec_button 節に使用できる何らかのアクションコンバイナー関数はありますか?

どのように解決するのですか?

これは古いですが、私は同じ質問を持っていた。私は最終的にそれを理解した。中括弧で式を含み、イベント/反応オブジェクトを単にリストします。私の (根拠のない) 推測では、shiny は単にこの式ブロックに対して、標準の reactive ブロックと同じ反応ポインタ解析を行うだけだと思います。

observeEvent({ 
  input$spec_button
  mainplot.click$click
  1
}, { ... } )

EDIT

式の最終行がNULLを返す場合に対応できるように更新しました。単純に定数値を返します。