当数据为空时从ggvis返回的正确方法是什么?

RIn*_*atM 6 r shiny ggvis

我的ggvis图取决于几个输入字段,它们像输入数据的过滤器一样工作.对于某些组合,结果数据框为空,ggvis抛出错误并中断整个应用程序.我试着把

if(nrow(inputdataframe) == 0) return NULL 
if(nrow(inputdataframe) == 0) return ggvis()
Run Code Online (Sandbox Code Playgroud)

这没有帮助.在这种情况下,什么是正确的返回参数(我想要一个空图或一些文本消息)?

server.R

effvis <- reactive ({
      dta <- siteeff()
      if(nrow(dta)  == 0) return(NULL)
      dta %>%
          ggvis(~param.value, ~yvar) %>%
          layer_points( size := 50, size.hover := 200) %>%
          set_options(width = 800, height = 500)
})
effvis %>% bind_shiny("effplot")
Run Code Online (Sandbox Code Playgroud)

ui.R -

ggvisOutput("effplot")
Run Code Online (Sandbox Code Playgroud)

更新

我不想在数据为空时显示所有数据(如此处所示)这令人困惑

Jua*_*tro 3

就我而言,使用最新的shiny,我可以只发送一个空的data.table(或data.frame),shiny只绘制一个空的图表(data.frame或data.table必须有相应的列)