R 不应该是一个额外的结束括号,因为我有一个额外的开始。请再次尝试我的编辑,并描述任何错误或不希望的结果,而不仅仅是它工作或不工作。语法错误可能是由带有空格或特殊字符的列名引起的。用全小写的双引号将这些列名括起来。我已经复制了您的代码并按原样使用。我把上面的错

R 不应该是一个额外的结束括号,因为我有一个额外的开始。请再次尝试我的编辑,并描述任何错误或不希望的结果,而不仅仅是它工作或不工作。语法错误可能是由带有空格或特殊字符的列名引起的。用全小写的双引号将这些列名括起来。我已经复制了您的代码并按原样使用。我把上面的错,r,postgresql,shiny,R,Postgresql,Shiny,不应该是一个额外的结束括号,因为我有一个额外的开始。请再次尝试我的编辑,并描述任何错误或不希望的结果,而不仅仅是它工作或不工作。语法错误可能是由带有空格或特殊字符的列名引起的。用全小写的双引号将这些列名括起来。我已经复制了您的代码并按原样使用。我把上面的错误作为图片附在了帖子里。我不得不将location=location()调整为location=location\u pick(),但其余部分与代码保持相同。请告诉我您的想法。错误源于UI部分。请参阅编辑使用小型服务器fct修复程序删除不需要的


不应该是一个额外的结束括号,因为我有一个额外的开始。请再次尝试我的编辑,并描述任何错误或不希望的结果,而不仅仅是它工作或不工作。语法错误可能是由带有空格或特殊字符的列名引起的。用全小写的双引号将这些列名括起来。我已经复制了您的代码并按原样使用。我把上面的错误作为图片附在了帖子里。我不得不将location=location()调整为location=location\u pick(),但其余部分与代码保持相同。请告诉我您的想法。错误源于UI部分。请参阅编辑使用小型服务器fct修复程序删除不需要的逗号。谢谢,我做了编辑。现在我收到了这个错误消息error:“数据”必须是二维的(例如数据框或矩阵),在哪里可以将我的表从数据库转换为数据框?

library(shiny)
library(shinydashboard)
library(RColorBrewer)
library(leaflet)
library(dplyr)
library(ggplot2)
library(tidyverse)
library(fpp)
library(plotly)
library(sp)
library(RPostgreSQL)
library(DBI)
library(pool)

#####


pool <- dbPool(drv = dbDriver("PostgreSQL", max.con = 100), user = "user", password = "pswd", host = "localhost", port = 5432, dbname = "people", idleTimeout = 3600000)

##list of people names
All<-tbl(pool, "table")
All%>%group_by(name)
names_All<- dbGetQuery(pool, "SELECT name FROM table GROUP BY name") ## list of names another way
type_grouped<- dbGetQuery(pool, "SELECT type FROM table GROUP BY type")
loc_grouped<- dbGetQuery(pool, "SELECT location FROM table GROUP BY location") 

####

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput(
        inputId = "name",
        label = " name",
        choices = names_All,
        selected = 1,
      ),
      selectInput(
        inputId = "type",
        label = " type",
        choices = type_grouped,
        selected = 1,
  
      ),
      selectInput(
        inputId = "location",
        label = " location",
        choices = loc_grouped,
        selected = 1,
      )
    ),
    mainPanel(
      tabsetPanel(
        tabPanel("graph", plotOutput("plot")),
        tabPanel("Table", dataTableOutput("table"))
      )
    )
)
)

server <- function(input, output, session) {

  selectedData <- reactive({
    req(input$name)
    req(input$type)
    req(input$location)
    query <- glue::glue_sql(
      "SELECT * FROM table
       WHERE name IN ({name*})
       AND type IN ({type*})
       AND location IN ({location*});",
      name = input$name,
      type = input$type,
      location=input$location,
      .con = pool)
    outp <- as.data.frame(dbGetQuery(pool, query))
    outp

  })

   
  output$table <- DT::renderDataTable({
    DT::datatable(  data = selectedData(),
                   options = list(pageLength = 14),
                    rownames = FALSE)
  
  
  output$plot <- renderPlot({
    ggplot( data = selectedData(), aes(x = date, y = name )) + geom_point()
  })
  
}

shinyApp(ui = ui, server = server)