使用case_when()的评估错误

时间:2018-08-16 09:44:32

标签: r shiny dplyr

我想从数据库中获取条件和查询,并通过方式动态地对它们进行分组处理,所以我构建了一个闪亮的应用程序,可以从输入字段中获取条件和查询。

相关部分:

can not locate object method 'mget' via package NET::FTP

我得到# I get the followings input field query = "SELECT... ORDER BY X LIMIT 200 ;" cond1 = "any( x1 == \"y1\") | any( x2 == \"y2\") ~ 1, TRUE ~ 0" server <- shinyServer(function(input, output, session) { # Get data & process # Click the button to generate a new data frame from the current query observeEvent(input$generate, { drv <- dbDriver("PostgreSQL") conn <- dbConnect(drv, ...) dataset = dbGetQuery(conn, query) # I fail here... dataset = dataset %>% group_by(my_id) %>% mutate(FLAG = eval(parse(text=sprintf("case_when(%s)", cond1)))) %>% as.data.frame() 的行数超过278行(与没有Warning: Error in stop: Evaluation error: object 'X' not found.mutate_impl(.data, dots)的列数无关)和ORDER BY的行数约为200。没有Shiny(无论我获取的行数如何),而Shiny的行数少于上述行数,我不会收到任何错误。

我一直在尝试搜索它,发现它可能是一个可能与混合评估程序(https://github.com/tidyverse/dplyr/issues/3422)相关的错误:

`dplyr::case_when` Evaluation error: object 'x' not found

0 个答案:

没有答案