Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R SQLite应用程序中的对象错误_Sql_R_Sqlite_Shiny Server_Shinyapps - Fatal编程技术网

R SQLite应用程序中的对象错误

R SQLite应用程序中的对象错误,sql,r,sqlite,shiny-server,shinyapps,Sql,R,Sqlite,Shiny Server,Shinyapps,我正在尝试开发一个带有SQLite数据库的R闪亮应用程序。但是当我从数据库中获取任何数据时,我会遇到这个错误。错误消息是: Loading required package: shiny Attaching package: ‘dplyr’ The following objects are masked from ‘package:stats’: filter, lag The following objects are masked from ‘package:base’:

我正在尝试开发一个带有SQLite数据库的R闪亮应用程序。但是当我从数据库中获取任何数据时,我会遇到这个错误。错误消息是:

Loading required package: shiny
Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
    filter, lag
The following objects are masked from ‘package:base’:
    intersect, setdiff, setequal, union**
在应用程序中,它显示:

[object Object]
有人能帮我吗?您对开发SQLite数据库有什么建议吗

代码如下:

#库
图书馆(统计)
图书馆(闪亮)
图书馆(RSQLite)
图书馆(dtplyr)
图书馆(dplyr)
图书馆(DBI)
#全局变量

db数据帧不应在用户界面上以
textOutput
呈现,而应以
tableOutput
呈现。然后将被动调用调整为可渲染的。通常,
input$
对象应该包装在
reactive
中。此外,考虑适当的参数化,如:用:

服务器调整

...

# INPUTS
ppcpquery <- reactive({
  input$user1
})

propertyquery <- reactive({
  input$user2
})

# OUTPUTS
output$ppcpOut <- renderText({
    ppcpquery()
})  

output$propertyOut <- renderText({
    propertyquery()
})

output$valueOut <- renderTable({
  # PREPARED STATEMENT WITH PLACEHOLDER
  sql <- "SELECT Solubility FROM mydata WHERE PPCP = ?ppc")

  # BIND PARAMETER
  query <- DBI::sqlInterpolate(db, sql, ppc = ppcpquery())

  # RUN QUERY AND RETURN RESULTS
  dbGetQuery(db, query)
})
...

mainPanel(
  textOutput("ppcpOut"),         # ALIGNS TO renderText
  textOutput("propertyOut"),     # ALIGNS TO renderText
  tableOutput("valueOut")        # ALIGNS TO renderTable
)

现在,如果
dbGetQuery
返回一行一列的数据帧,那么您可以在
server
中使用
renderText
,在
ui
中使用
textOutput
。但从列中提取值:

dbGetQuery(db, query)$Solubility[[1]]

不应使用
textOutput
在用户界面上呈现数据帧,而应使用
tableOutput
在用户界面上呈现数据帧。然后将被动调用调整为可渲染的。通常,
input$
对象应该包装在
reactive
中。此外,考虑适当的参数化,如:用:

服务器调整

...

# INPUTS
ppcpquery <- reactive({
  input$user1
})

propertyquery <- reactive({
  input$user2
})

# OUTPUTS
output$ppcpOut <- renderText({
    ppcpquery()
})  

output$propertyOut <- renderText({
    propertyquery()
})

output$valueOut <- renderTable({
  # PREPARED STATEMENT WITH PLACEHOLDER
  sql <- "SELECT Solubility FROM mydata WHERE PPCP = ?ppc")

  # BIND PARAMETER
  query <- DBI::sqlInterpolate(db, sql, ppc = ppcpquery())

  # RUN QUERY AND RETURN RESULTS
  dbGetQuery(db, query)
})
...

mainPanel(
  textOutput("ppcpOut"),         # ALIGNS TO renderText
  textOutput("propertyOut"),     # ALIGNS TO renderText
  tableOutput("valueOut")        # ALIGNS TO renderTable
)

现在,如果
dbGetQuery
返回一行一列的数据帧,那么您可以在
server
中使用
renderText
,在
ui
中使用
textOutput
。但从列中提取值:

dbGetQuery(db, query)$Solubility[[1]]

亲爱的冻糕,非常感谢您的解决方案。它真的很有效!!!但是如果我想在“sql”中使用两个变量呢。我该怎么办?我尝试了与使用?ppc相同的方法,我使用了?prop而不是溶解度,但是当sql中有两个变量时,只有一个有效。您有什么建议吗?您不能参数化标识符,如表名和列名,只能使用文字值。使用
粘贴
或其他字符串插值作为标识符。亲爱的帕菲,非常感谢您的解决方案。它真的很有效!!!但是如果我想在“sql”中使用两个变量呢。我该怎么办?我尝试了与使用?ppc相同的方法,我使用了?prop而不是溶解度,但是当sql中有两个变量时,只有一个有效。您有什么建议吗?您不能参数化标识符,如表名和列名,只能使用文字值。对标识符使用
粘贴
或其他字符串插值。