我想从数据库中获取条件和查询,并通过方式动态地对它们进行分组处理,所以我构建了一个闪亮的应用程序,可以从输入字段中获取条件和查询。
相关部分:
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)相关的错误: