首页 > 解决方案 > R Shiny SQLite App:数据检索问题

问题描述

我正在尝试从用户选择的数据库中检索数据。我每次遇到的错误是:

“卡马西平”附近:语法错误

ps:卡马西平是用户选择的元素。

我的sqlite数据库如下:

在此处输入图像描述

我对编程很陌生。谁能帮忙?我在互联网上阅读过,问题可能是由于 sqlite 数据库中的数据类型错误而发生的。任何人都可以提出任何建议吗?我的代码如下:

全球.r


# Libraries

library("shiny")
library("RSQLite")
library("dtplyr")
library("dplyr")

# Globar Variables 

db <- dbConnect (SQLite(),
                  "/Users/sudiptobosu/200922/20200714PPCP.sqlite")
# Global Function





names_ppcp = dbGetQuery(db, "Select PPCP FROM mydata")

服务器.r

shinyServer(function (input, output, session) {

output$ppcpOut <- reactive({
  input$user1
})  


output$propertyOut <- reactive({
  input$user2
})
  

ppcpquery <- reactive({
  input$user1
})  

query <- reactive({
  paste('SELECT solubility FROM mytable WHERE PPCP = "%s"', ppcpquery())
})


output$valueout <- reactive({
  
  dbGetQuery(db,paste(query()))
  
})

#propertyquery <- eventReactive ({input$user2})  

session$onSessionEnded (function()
  {
  dbDisconnect(db)
})

})
  


用户界面

ui <- fluidPage ( 
  titlePanel("bo-DEREC CE"),
  sidebarLayout( 
    sidebarPanel(
      selectInput("user1","Select the PPCP",choices = names_ppcp),
      selectInput("user2","Select the property",choices = c("Solubility","Volatility","Adsorbability","Degradability"))
    ),
    mainPanel(
      textOutput("ppcpOut"),
      textOutput("propertyOut"),
      textOutput("valueout")
    )
  )
)

标签: rsqliteshinyshinyappsshiny-reactivity

解决方案


一般来说,如果您提供了一个可以运行的示例,那么在这里找出问题所在会更容易 - 但是查看您的代码,如果您有这行: paste('SELECT solubility FROM mytable WHERE PPCP = "%s"', ppcpquery()),您可能想要这个:sprintf('SELECT solubility FROM mytable WHERE PPCP = "%s"', ppcpquery())

paste不支持使用类似的变量%s,需要使用sprintf这种方式构造字符串。


推荐阅读