我有一些父(系统)和子(组)形式的分层数据。在闪亮中,我有两组单选按钮,一组用于系统,一组用于组。因此,我使用一个 observe() 语句将 Group 单选按钮更新为仅针对所选系统存在的那些:
observe({
r_options <- list()
groups <- unique(fulldata$group[fulldata$system=input$system])
updateRadioButtons(session,"group","Group",choices=groups,selected=paste(groups[1]))
},priority=100)
最初,我刚刚在 server.R 文件中使用了 renderPlot,它生成了一个普通的 R 图。当我对系统进行更改时,Error: dims [product 1] do not match the length of object [0]
会在图表的位置弹出一个错误一会儿,然后将其替换为新图表。
现在我正在尝试用 ggvis 图替换图形,因此 renderPlot 已被替换为反应式(存储在对象 vis 中),最终构建 ggvis 图和最后一行:
vis %>% bind_shiny("mychart")
现在,应用程序崩溃并且相同的错误消息输出到控制台。我已经尝试编写代码,其中反应存储图形所需的数据,然后在反应元素 ala 之外调用整个 ggvis 块:
fon = reactive({...})
fon %>%
ggvis(~date,~value,stroke=~type) %>%
layer_lines() %>%
bind_shiny("mychart")
我不知道为什么这会导致一个壮观的失败而不是友好的注释,但我的主要兴趣是知道如何取消最后一行的优先级,以便在观察语句完成之前不会执行?或者当输入反应性变化时,是否有更好的方法来输出 ggvis?