【发布时间】:2014-09-23 14:28:59
【问题描述】:
我的 ggvis 图取决于几个输入字段,它们的作用类似于输入数据的过滤器。对于某些组合,生成的数据框为空,并且 ggvis 抛出错误并破坏整个应用程序。 我试着把
if(nrow(inputdataframe) == 0) return NULL
if(nrow(inputdataframe) == 0) return ggvis()
这没有帮助。在这种情况下,正确的返回参数是什么(我想要一个空图或一些短信)?
服务器.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")
ui.R --
ggvisOutput("effplot")
更新
我不想在数据为空时显示所有数据(建议here)这很混乱
【问题讨论】:
-
我也对此感兴趣。我只是有条件地提供具有相同列和零的 data.frame。您应该能够在 ui.R 中使用
conditionalPanel来查看指示 data.frame 是否为空的反应字符串,但在我的情况下它并不总是有效。 -
过去,您的“此处”链接对我很有帮助。我还会查看指向她在 cmets 中工作的应用程序的链接。你的用户界面中有输入控件吗?你应该测试那些存在于 server.r
-
@miles2know 感谢您指向 cmets。确实,我查看了她的代码,发现了我不知道的 validate() 函数 - shiny.rstudio.com/articles/validation.html 但是,它似乎对 ggvis 不起作用