我的ggvis图取决于几个输入字段,这些字段的作用类似于输入数据的过滤器。对于某些组合,结果数据帧为空,ggvis引发错误并破坏了整个应用程序。
我试图把

if(nrow(inputdataframe) == 0) return NULL
if(nrow(inputdataframe) == 0) return ggvis()

这没有帮助。在这种情况下,正确的返回参数是什么(我想改用空白图表或文本消息)?

服务器
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")

ui.R-
ggvisOutput("effplot")

更新

我不想在数据为空时显示所有数据(如建议的here),这令人困惑

最佳答案

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

关于r - 当数据为空时从ggvis返回正确的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25997720/

10-12 22:39