繁体   English   中英

使用dplyr中的filter_时,RStudio Shiny崩溃

[英]RStudio Shiny crashes when using filter_ from dplyr

我正在Shiny应用程序中使用dplyr的filter_函数过滤数据集。 我用try()包围评估,以便可以捕获错误。 在某些情况下,例如使用空过滤器字符串,这可以按预期工作。 但是,如果过滤器字符串包含不在data.frame中的变量,则Shiny会完全崩溃。

以以下代码为例-如果过滤器字符串只是“”,则Shiny返回错误(如预期)。 但是,如果在z不存在的情况下包含“ z == 1”,则应用程序将崩溃(不期望!)。

library(shiny)
library(dplyr)
testapp <- shinyApp(
  ui = bootstrapPage(
    numericInput('n', 'Number of obs', 100),
    plotOutput('plot'),
    uiOutput("whyfail")
  ),

  server = function(input, output) {
    output$plot <- renderPlot({ hist(runif(input$n)) })


    output$whyfail<-renderUI({
      input$n
      dat<-data.frame(a=LETTERS[1:5], b=1:5)
      xx<-try(filter_(dat, ""), silent = TRUE)# returns an error as expected
      #xx<-try(filter_(dat, "z==1"), silent = TRUE) # crashes Shiny
      HTML(paste(attr(xx, "class"), collapse = '<br/>'))
    })



  }
)
runApp(testapp)

更新

我的dplyr版本是0.4.2,闪亮的是0.12.1。 两次更新:首先,如果我在基本R GUI(而不是RStudio)中运行,则看不到崩溃。 另外,如果我根本不加载dplyr,则代码可以正常运行而不会崩溃。 考虑到我希望filter_()依赖于dplyr而使代码运行,我感到惊讶,而Shiny似乎没有导入dplyr或filter_() )。

但是我需要dplyr,所以我希望继续使用RStudio,以便我们提供任何帮助。

更新2

我在Windows 7 v 0.99.446中使用RStudio

更新3

不确定放置此内容的最佳位置。 但这似乎是一个真正的错误,RStudio正在解决该错误,您可以在此链接中看到https://github.com/rstudio/shiny/issues/879

原来这是Rcpp软件包的问题,​​RStudio现在已经解决了。 您可以在此处查看讨论和解决方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM