У меня есть интерактивная визуализация, которая подключается к API данных полиции города.
Когда выбраны определенные комбинации входных данных, мой вызов API возвращается пустым, и я получаю неприятное красное сообщение об ошибке (так как мои вводимые данные недоступны).
Может кто-нибудь сказать мне, как отобразить более информативное сообщение об ошибке в виде строки «нет инцидентов, соответствующих вашему выбору, пожалуйста, попробуйте еще раз»?Я хотел бы, чтобы это сообщение об ошибке отображалось как showNotification, а мой ggplot не отображался.
Ниже приведена крайне урезанная версия того, что я делаю.Обратите внимание, что при выборе комбинации, такой как «AVONDALE» и «CHEMICAL IRRITANT», диаграмма отображается, тогда как при выборе комбинации, такой как «ENGLISH WOODS» и «TASER-BEANBAG-PEPPERBALL-40MM FOAM», возвращается сообщение об ошибке.Это сообщение об ошибке, к которому я хотел бы обратиться с предупреждением showNotification.
Обратите внимание, что при этом используется API Socrata, поэтому пакет RSocrata должен быть установлен и загружен.
install.packages("RSocrata")
library(shiny)
library(reshape2)
library(dplyr)
library(plotly)
library(shinythemes)
library(tibble)
library(RSocrata)
# Define UI for application that draws a histogram
ui <- fluidPage(
navbarPage("Example",
theme = shinytheme("united"),
tabPanel("Plot",
sidebarLayout(
sidebarPanel(
# neighborhood selector
selectizeInput("neighbSelect",
"Neighborhoods:",
choices = c("AVONDALE", "CLIFTON", "ENGLISH WOODS"),
multiple = FALSE)),
# incident description selector
selectizeInput("incSelect",
"Incident Type:",
choices = c("CHEMICAL IRRITANT", "TASER-BEANBAG-PEPPERBALL-40MM FOAM"),
multiple = FALSE))
),
# Output plot
mainPanel(
plotlyOutput("plot")
)
)
)
# Define server logic
server <- function(input, output) {
forceInput <- reactive({
forceInput <- read.socrata(paste0("https://data.cincinnati-oh.gov/resource/e2va-wsic.json?$where=sna_neighborhood= '", input$neighbSelect, "' AND incident_description= '", input$incSelect, "'"))
})
# Render plot
output$plot <- renderPlotly({
ggplot(data = forceInput(), aes(x = sna_neighborhood)) +
geom_histogram(stat = "count")
})
}
# Run the application
shinyApp(ui = ui, server = server)
Большое спасибо за любую помощь, которую может предложить каждый!