我的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/