Error: An error has occurred. Check your logs or contact the app author for clarification

He creado mi Shinyapp (mediante dos archivos ui.R y server.R, ademas de uno global.R.
Localmente la app se abre y funciona correctamente, pero el mapa no se carga y me sale este error:

Me podéis ayudar a solucionarlo? Mi código es:

Codigo server.R

library(shiny)

library(datasets)
library(rsconnect)
library(readr)
library(dplyr)
library(flexdashboard)
library(readxl)
library(tidyverse)
library(stringr)
library(rgdal)
library(rgeos)
library(plotly)

nombr_dep = c("C.Valenciana" = 1
              , "Homes/Hombres" = 1
              , "Dones/Mujeres" = 1
              , "Prov. Alacant/Alicante" = 1
              , "Prov. Castelló/Castellón" = 1
              , "Prov. València" = 1
) 

num_dep = c("C.Valenciana" = 0
            , "Homes/Hombres" = 0
            , "Dones/Mujeres" = 0
            , "Prov. Alacant/Alicante" = 0
            , "Prov. Castelló/Castellón" = 0
            , "Prov. València" = 0
) 
########################## MAPA

Incidencia = tab$Incidencia[5:28]

mapa <- rgdal::readOGR(
    paste0(dsn = "./", layer ="departamentos_salud_ogr.json")
)


mapa_departamentos <- fortify(model = mapa, region = "DPTO_KEY")

info_municipios <- mapa@data



mapa_departamentos <- mapa_departamentos %>%
    left_join(info_municipios, by = c("id" = "DPTO_KEY"))

info_municipios$INCIDENCIA <- Incidencia
info_municipios$id <- info_municipios$DPTO_KEY

mapa_departamentos <- 
    left_join(
        x = mapa_departamentos,
        y  = info_municipios,
        by = "id"
    )
mapa_departamentos$DEPARTAMENTO <- mapa_departamentos$NOMBRE.x
# Se eliminan puntos (se reduce la resolución)
mapa_departamentos <- mapa_departamentos %>%
    slice(seq(1, nrow(mapa_departamentos), 5))

# Para etiqueratlo

nombre_departamentos <- info_municipios$NOMBRE
numero_incidencias <- info_municipios$INCIDENCIA
lat <- as.numeric(mapa_departamentos$lat)

long <- as.numeric(mapa_departamentos$long)

datos2 <- data.frame(
    "long" = long, "lat" = lat
)

datos1 <- data.frame(
    "id" = c(1:24), "Incidencia" = Incidencia
)

#cordenadaa_departamentos$nombre_departamentos <- nombre_departamentos
datos2$id <- as.numeric(mapa_departamentos$DPTOCRC.x)

datos2 <- left_join(
    x = datos2,
    y = datos1,
    by = "id"
)
cordenadaa_departamentos <- coordinates(mapa)
colnames(cordenadaa_departamentos)  <- c("long", "lat")
cordenadaa_departamentos  <-  as.data.frame(cordenadaa_departamentos)
cordenadaa_departamentos$DEPARTAMENTOS <- nombre_departamentos

# Define server logic required to draw a histogram
shinyServer(function(input, output) {
    
    output$mitjana <- flexdashboard::renderGauge({
        valor <- tab$Mitjana[nombr_id[input$Zona]]
        gauge(valor, min = 0, max = tab$Mitjana[1], gaugeSectors(
            success = c(0, tab$Mitjana[1]/10), warning = c(tab$Mitjana[1]/10, tab$Mitjana[1]), danger = c(tab$Mitjana[1]/2, tab$Mitjana[1])
        ))
    })
    
    output$incidencia <- flexdashboard::renderGauge({
        valor <- tab$Incidencia[nombr_id[input$Zona]]
        
        gauge(valor, min = 0, max = 250, gaugeSectors(
            success = c(0, 50), warning = c(50, 150), danger = c(150, 250)
        ))
    })
    
    output$mitjana14 <- flexdashboard::renderGauge({
        valor <- round(tab$Casos_Últims_14_Dies[nombr_id[input$Zona]]/14,3)
        gauge(valor, min = 0, max = tab$Casos_Últims_14_Dies[1]/14, gaugeSectors(
            success = c(0, tab$Casos_Últims_14_Dies[1]/140), warning = c(tab$Casos_Últims_14_Dies[1]/140, tab$Casos_Últims_14_Dies[1]/28), danger = c(tab$Casos_Últims_14_Dies[1]/28, tab$Casos_Últims_14_Dies[1]/14)
        ))
    })
    
    
    output$mapa <- renderPlot({
        print(input$Zona)
        valor = nombr_dep[nombr_id[input$Zona]]
        print(valor)
        valor2 = num_dep[input$Zona]
        print(valor2)
        if (valor == 1 ){
            mapa_departamentos %>%
                ggplot(aes(x = long, y = lat, group = group, fill=INCIDENCIA, Zona = DEPARTAMENTO, texto = INCIDENCIA)) +
                geom_polygon(color = "black") +
                coord_map("mercator") +
                scale_fill_viridis_c() + # Para mas vaierdad de colores 
                theme_bw() +
                theme(
                    legend.position="bottom",
                    axis.text.x = element_blank(),
                    axis.text.y = element_blank(),
                    axis.ticks =  element_blank(),
                    axis.title = element_blank(),
                    panel.border = element_blank(),
                    panel.grid.major = element_blank(),
                    panel.grid.minor = element_blank()
                )
            #ggplotly(p, width = 450, height = 700, tooltip = c("Zona", "texto"))
        }else {
            #mapa_depart <- mapa_departamentos %>% filter(DEPARTAMENTO == valor)
            mapa_departamentos %>%
                ggplot(aes(x = long, y = lat, group = group, fill=INCIDENCIA, Zona = DEPARTAMENTO, texto = INCIDENCIA)) +
                geom_polygon(color = "black") +
                geom_polygon(
                    data = mapa_departamentos %>% filter(DPTOCRC.x == valor2),
                    aes(x = long, y = lat, group = group),
                    fill = "gray90",
                    color = "black") + 
                geom_polygon(
                    data = mapa_departamentos %>% filter(DEPARTAMENTO == valor),
                    aes(x = long, y = lat, group = group),
                    fill = "firebrick",
                    alpha = 0.5) + 
                geom_label(
                    data = cordenadaa_departamentos %>% filter(DEPARTAMENTOS == valor),
                    aes(x = long, y = lat, label = tab$Incidencia[nombr_id[input$Zona]]),
                    inherit.aes = FALSE,
                    size = 4
                ) +
                coord_map("mercator") +
                scale_fill_viridis_c() + # Para mas vaierdad de colores 
                theme_bw() +
                theme(
                    legend.position="bottom",
                    axis.text.x = element_blank(),
                    axis.text.y = element_blank(),
                    axis.ticks =  element_blank(),
                    axis.title = element_blank(),
                    panel.border = element_blank(),
                    panel.grid.major = element_blank(),
                    panel.grid.minor = element_blank()
                )
        }
    })
    
    output$evolucion <- renderPlot({
        btn1 <- input$Zona
        btn0 <- "Data diagnòstic laboratori/fecha diagnóstico laboratorio"
        
        
        ggplot(datos_PDIA,aes(x = datos_PDIA[[btn0]], y = datos_PDIA[[btn1]]))+geom_line()+ scale_x_date()+labs(
            x = "Data",
            y = "Nombre de casos"
        )
        
    })
})

Se que se puede mejorar el código, estoy en proceso.

This topic was automatically closed 54 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.