使用 Shiny 中的反应值通过 sqldf 执行 SQL
Executing SQL with sqldf using reactive values in Shiny
我有一个应用程序,其中一些数据存储为反应值,并且可以使用 sqldf()
执行 SQL 查询
用户是否可以加入df_one和df_two并将其存储为df_tot?让 sqldf 查看反应值内部的好方法是什么?
library(shiny)
library(sqldf)
ui <- fluidPage(
pickerInput('available_data_sets', 'Data sets', choices = c('df_one', 'df_two')),
textInput('store_table_as', 'Store table as', value = ''),
textInput('sql_query', 'sql_query'),
actionButton('execute', 'execute')
)
server <- function(input, output, session) {
available_data_sets <- reactiveValues()
df_one <- data.frame(a = c(1, 2, 3), b = c('a', 'b', 'c'))
df_two <- data.frame(x = c(4, 5, 6), b = c('a', 'b', 'c'))
available_data_sets[['df_one']] <- df_one
available_data_sets[['df_two']] <- df_two
observeEvent(input$execute, {
req(input$sql_query, input$store_table_as)
available_data_sets[[input$store_table_as]] <- sqldf(input$sql_query)
new_names <- names(available_data_sets)
updatePickerInput(session, 'available_data_sets', choices = new_names)
})
}
shinyApp(ui, server)
sqldf(input$sql_query, envir = list2env(available_data_sets))
我有一个应用程序,其中一些数据存储为反应值,并且可以使用 sqldf()
用户是否可以加入df_one和df_two并将其存储为df_tot?让 sqldf 查看反应值内部的好方法是什么?
library(shiny)
library(sqldf)
ui <- fluidPage(
pickerInput('available_data_sets', 'Data sets', choices = c('df_one', 'df_two')),
textInput('store_table_as', 'Store table as', value = ''),
textInput('sql_query', 'sql_query'),
actionButton('execute', 'execute')
)
server <- function(input, output, session) {
available_data_sets <- reactiveValues()
df_one <- data.frame(a = c(1, 2, 3), b = c('a', 'b', 'c'))
df_two <- data.frame(x = c(4, 5, 6), b = c('a', 'b', 'c'))
available_data_sets[['df_one']] <- df_one
available_data_sets[['df_two']] <- df_two
observeEvent(input$execute, {
req(input$sql_query, input$store_table_as)
available_data_sets[[input$store_table_as]] <- sqldf(input$sql_query)
new_names <- names(available_data_sets)
updatePickerInput(session, 'available_data_sets', choices = new_names)
})
}
shinyApp(ui, server)
sqldf(input$sql_query, envir = list2env(available_data_sets))