observer() 中的嵌套 observeEvent() 执行得太频繁

Nested observeEvent() in observer() gets executed too often

我的代码看起来像

observe ({
    #subset someDataframe which I need in the observeEvent() 

    observeEvent(input$Numbers{
        #if not NULL, do something with subsetted dataframe
    })
})

我有一个 observe() 函数,它从 ui.R 获取输入。根据输入,我对将显示在应用程序中的数据框进行子集化。 需要进一步子集化,但该字段可以为空。如果 selection 为空(因此,NULL),要避免 Unhandled Error,请使用 observeEvent() 函数。如果该字段保持为空,则不会引发错误。

虽然有一些奇怪的行为。我打印出 observeEvent() 观察到的 selected(在我的 R 控制台中)。当我 select 通过 observeEvent() 函数观察到的东西时, selected 的东西被打印一次。当我更改由简单 observe() 观察到的 selection,然后更改 observeEvent() 观察到的 selection 中的某些内容时,它会打印两次。当我更改 observe() 函数观察到的 selection,然后更改 observeEvent() 中的 selection 时,它会打印三次 - 依此类推。

因此,根据我更改 observed() 函数观察到的 selection 的频率,observeEvent() 会经常执行。

这是为什么?!

根据我的评论:

subset <- reactive({
  # Do your sub-setting here 

  if(!is.null(input$Numbers)){
    #Do something else
  } 
  # return (your_subset)
})