![](/img/trans.png)
[英]R: dplyr “must be a 1d atomic vector or a list” error when using filter_()
[英]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,以便我們提供任何幫助。
我在Windows 7 v 0.99.446中使用RStudio
不確定放置此內容的最佳位置。 但這似乎是一個真正的錯誤,RStudio正在解決該錯誤,您可以在此鏈接中看到https://github.com/rstudio/shiny/issues/879
原來這是Rcpp軟件包的問題,RStudio現在已經解決了。 您可以在此處查看討論和解決方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.