Блестящий динамический + отфильтрованный кадр данных / таблица с выходом MySQL - PullRequest
2 голосов
/ 06 марта 2019

Обычно я пытаюсь отобразить фрейм данных в R, запрашивая его в MySQL.

У меня есть два фильтра, в зависимости от которых значения фрейма / таблицы данных будут различаться.Таблица является реактивной на основе выбранных пользователем фильтров.

UI

ui <- fluidPage(fluidRow(
column(4,radioButtons("Stocks", "Stock Number",
choices = c(1: 2),selected='1')),

column(4,radioButtons("Funds", "Fund Name",
choices = list("W" = 1, "L" = 2),selected='1')),

column(4,checkboxGroupInput("Position", "Market Position", 
choices = c(1:5))),

tableOutput("values")
)

SERVER

server <- function(input, output) 
{    
 tableValues<-reactive({
 df<-dbSendQuery(mydb,paste0("SELECT STOCKS,FUNDS,POSITION,INVESTMENTS FROM 
 SUMMARY WHERE USERNAME='1223' and STOCKS=",input$Stocks," AND 
 FUNDS='",input$Funds,"' 
 AND POSITION=",input$position,";"))
 return(df)
 })

output$values <- renderTable({
tableValues()})

}

Это то, что у меня сейчас, но это не похоже на работу.Любые предложения о том, как отобразить таблицу данных / таблицу и сделать ее реактивной на основе выбранных фильтров?

Спасибо!

1 Ответ

1 голос
/ 06 марта 2019

Ошибка: error- "cannot coerce class 'structure("MySQLResult", package = "RMySQL")' to a data.frame". Это потому, что вы не fetch редактировали данные.

server <- function(input, output) 
{    
 tableValues<-reactive({
 query<-dbSendQuery(mydb,paste0("SELECT STOCKS,FUNDS,POSITION,INVESTMENTS FROM 
 SUMMARY WHERE USERNAME='1223' and STOCKS=",input$Stocks," AND 
 FUNDS='",input$Funds,"' 
 AND POSITION=",input$position,";"))
 df = fetch(query, n = -1)
 return(df)
 })

output$values <- renderTable({
tableValues()})

}

https://www.rdocumentation.org/packages/DBI/versions/0.2-1/topics/dbSendQuery

...