[英]object Object error in R Shiny SQLite App
我正在嘗試使用 SQLite 數據庫開發 R Shiny 應用程序。 但是我在從數據庫中獲取任何數據時遇到了這個錯誤。 錯誤信息是:
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 數據庫有什么建議嗎?
代碼如下:
# Libraries
library(stats)
library(shiny)
library(RSQLite)
library(dtplyr)
library(dplyr)
library(DBI)
# Globar Variables
db <- dbConnect (SQLite(),
"/Users/sudiptobosu/200922/20200714PPCP.sqlite")
# Global Function
names_ppcp = dbGetQuery(db, "SELECT ALL PPCP FROM mydata")
#server
shinyServer(function (input, output, session) {
dplyr::filter
stats::filter
output$ppcpOut <- reactive({
input$user1
})
output$propertyOut <- reactive({
input$user2
})
ppcpquery <- reactive({
input$user1
})
queryy <- reactive({
gsub("<ppc>", ppcpquery(), "SELECT Solubility FROM mydata WHERE PPCP = '<ppc>'")
})
output$valueout <- reactive({
dbGetQuery(db, queryy())
})
#propertyquery <- eventReactive ({input$user2})
session$onSessionEnded (function() {
dbDisconnect(db)
})
})
#ui
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")
)
)
)
數據幀不應該與用戶界面上呈現textOutput
但tableOutput
。 然后調整對renderTable
反應性調用。 並且通常input$
對象應該包裝在reactive
。 另外,請考慮正確參數化,例如使用DBI:sqlInterpolate
:
服務器調整
...
# 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
返回一個排和一列數據幀,那么你可以使用renderText
在server
和textOutput
的ui
。 但從列中提取值:
dbGetQuery(db, query)$Solubility[[1]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.