shinyapps.io 上的 Shiny 部署出错
Error in Shiny deployment on shinyapps.io
我有一个在我的电脑上运行良好的闪亮应用程序,但是一旦我在 shinyapps.io 上部署它就会在网络浏览器上显示以下错误:
部署控制台上出现以下错误:
Warning message:
In value[[3L]](cond) :
Failed to parse
C:/Users/david.jorquera/AppData/Local/Temp/RtmpSOqdYV/file13849671673/app.R
; dependencies in this file will not be discovered.
如果您需要我正在使用的确切 excel 文件,如果您告诉我如何操作,我会很乐意附上它(抱歉,还没有弄清楚)。
这是 UI:
library(shiny)
library(ggplot2)
library(dplyr)
library(readxl)
EPA <- read_excel("data/EPA.xlsx")
ui <- fluidPage(titlePanel(img(src = 'logo-escudo-rojo.jpg', height=100,
width=150)),
titlePanel("Dirección de Análisis Institucional"),
sidebarLayout(
sidebarPanel(selectInput("facultad", h4("Seleccione Facultad o Total UDP"),
choices=c("Arquitectura, Arte y Diseño",
"Ciencias Sociales e Historia",
"Comunicación y Letras",
"Derecho",
"Economía y Empresa",
"Educación",
"Ingeniería y Ciencias",
"Medicina",
"Psicología",
"Salud y Odontología",
"Total UDP")),
conditionalPanel(condition = "input.facultad=='Arquitectura, Arte y
Diseño'",
selectInput("faad", h4("Seleccione carrera o Total Facultad"),
choices=c("Arquitectura",
"Artes Visuales",
"Diseño",
"Facultad de Arquitectura, Arte y Diseño"), selected="Arquitectura")),
conditionalPanel(condition = "input.facultad=='Ciencias Sociales e Historia'",
selectInput("fcsh", h4("Seleccione carrera o Total Facultad"),
choices=c("Bachillerato en Ciencias Sociales y Humanidades",
"Ciencia Política",
"Historia",
"Sociología",
"Facultad de Ciencias Sociales e Historia"), selected="Bachillerato en Ciencias Sociales y Humanidades")),
conditionalPanel(condition = "input.facultad=='Comunicación y Letras'",
selectInput("fcyl", h4("Seleccione carrera o Total Facultad"),
choices=c("Literatura Creativa",
"Periodismo",
"Publicidad",
"Facultad de Comunicación y Letras"))),
conditionalPanel(condition = "input.facultad=='Economía y Empresa'",
selectInput("fee", h4("Seleccione carrera o Total Facultad"),
choices=c("Ingeniería Comercial",
"Ingeniería en Control de Gestión",
"Contador Auditor-Contador Público
(D)",
"Facultad de Economía y Empresa"))),
conditionalPanel(condition = "input.facultad=='Educación'",
selectInput("fed", h4("Seleccione carrera o Total Facultad"),
choices=c("Pedagogía Básica",
"Pedagogía Parvularia",
"Pedagogía en Educación Diferencial",
"Pedagogía en Inglés",
"Pedagogía Media en Lenguaje y
Comunicación",
"Pedagogía Media en Historia y
Ciencias Sociales",
"Facultad de Educación"))),
conditionalPanel(condition = "input.facultad=='Ingeniería y Ciencias'",
selectInput("fing", h4("Seleccione carrera o Total Facultad"),
choices=c("Ingeniería Civil Plan Común",
"Ingeniería Civil Industrial",
"Ingeniería Civil en Informática y
Telecomunicaciones",
"Ingeniería Civil en Obras Civiles",
"Facultad de Ingeniería y
Ciencias"))),
conditionalPanel(condition = "input.facultad=='Salud y Odontología'",
selectInput("fsyod", h4("Seleccione carrera o Total Facultad"),
choices=c("Enfermería",
"Kinesiología",
"Odontología",
"Obstetricia y Neonatología",
"Tecnología Médica",
"Facultad de Salud y
Odontología")))),
mainPanel(h4("Encuesta de Primer Año"),
plotOutput("grafico1"),
br(),
br(),
plotOutput("grafico2")
)
))
...这是服务器
server <- function(input, output) {
base <- reactive ({
base <- if(input$facultad == "Arquitectura, Arte y Diseño") {
filter(EPA, Carrera==input$faad)}
else
if(input$facultad == "Ciencias Sociales e Historia") {
filter(EPA, Carrera==input$fcsh)}
else
if(input$facultad == "Comunicación y Letras") {
filter(EPA, Carrera==input$fcyl)}
else
if(input$facultad == "Derecho") {
filter(EPA, Carrera == "Facultad de Derecho")}
else
if(input$facultad == "Economía y Empresa") {
filter(EPA, Carrera == input$fee)}
else
if(input$facultad == "Educación") {
filter(EPA, Carrera == input$fed)}
else
if(input$facultad == "Ingeniería y Ciencias") {
filter(EPA, Carrera == input$fing)}
else
if(input$facultad == "Medicina") {
filter(EPA, Carrera == "Facultad de Medicina")}
else
if(input$facultad == "Psicología") {
filter(EPA, Carrera == "Facultad de Psicología")}
else
if(input$facultad == "Salud y Odontología") {
filter(EPA, Carrera == input$fsyod)}
})
output$grafico1 <- renderPlot({
datos <- base()
ggplot(datos, aes(Año, EPA_T_2, label=paste(round(EPA_T_2*100, 0), "%",
sep=""))) +
geom_col(aes(y = EPA_T_2)) +
scale_x_continuous(name = "Cohorte de Ingreso",
breaks = seq(min(datos[[4]]), max(datos[[4]]), 1))
+
scale_y_continuous(name = "% de Estudiantes encuestados", labels =
scales::percent) +
geom_text(position = position_stack(vjust=0.5), size=5) +
ggtitle("Tasa de Respuesta Encuesta de Primer Año") +
theme(plot.title=
element_text(color="#666666", face="bold", size=20, hjust=0.5))
})
output$grafico2 <- renderPlot({
datos <- base()
ggplot(datos, aes(Año, EPA_T_1_OK, label=EPA_T_1_OK)) +
geom_col(aes(y = EPA_T_1_OK)) +
scale_x_continuous(name = "Cohorte de Ingreso",
breaks = seq(min(datos[[4]]), max(datos[[4]]), 1)) +
scale_y_continuous(name = "N° de Estudiantes encuestados", breaks =
seq(min(0), max(datos[[6]]+10), 20)) +
geom_text(position = position_stack(vjust=0.5), size=5) +
ggtitle("Número de Estudiantes Encuestados") + theme(plot.title=
element_text(color="#666666", face="bold", size=20, hjust=0.5))
})
}
shinyApp(ui = ui, server = server)
我以前看过这个问题,一个解决方案是将 library()
替换为 require()
,但这并没有解决问题。
经过几天尝试不同的解决方案后,发现这是一个与编码相关的问题。然而,解决方案并不是在代码中尝试编码规范(我尝试使用 enc2utf8()
和其他相关函数使用 UTF-8 保存我的应用程序和数据库;重新访问此网页上的类似问题等)。
最后,事实证明服务器正在调用数据库中充满特殊字符(主要是 ñ 和重音符号)的值。因此,解决方案是将这些调用替换为对值而不是字符串的调用。我只希望有人能早点告诉我!但无论如何,生活和学习。
我有一个在我的电脑上运行良好的闪亮应用程序,但是一旦我在 shinyapps.io 上部署它就会在网络浏览器上显示以下错误:
部署控制台上出现以下错误:
Warning message:
In value[[3L]](cond) :
Failed to parse
C:/Users/david.jorquera/AppData/Local/Temp/RtmpSOqdYV/file13849671673/app.R
; dependencies in this file will not be discovered.
如果您需要我正在使用的确切 excel 文件,如果您告诉我如何操作,我会很乐意附上它(抱歉,还没有弄清楚)。 这是 UI:
library(shiny)
library(ggplot2)
library(dplyr)
library(readxl)
EPA <- read_excel("data/EPA.xlsx")
ui <- fluidPage(titlePanel(img(src = 'logo-escudo-rojo.jpg', height=100,
width=150)),
titlePanel("Dirección de Análisis Institucional"),
sidebarLayout(
sidebarPanel(selectInput("facultad", h4("Seleccione Facultad o Total UDP"),
choices=c("Arquitectura, Arte y Diseño",
"Ciencias Sociales e Historia",
"Comunicación y Letras",
"Derecho",
"Economía y Empresa",
"Educación",
"Ingeniería y Ciencias",
"Medicina",
"Psicología",
"Salud y Odontología",
"Total UDP")),
conditionalPanel(condition = "input.facultad=='Arquitectura, Arte y
Diseño'",
selectInput("faad", h4("Seleccione carrera o Total Facultad"),
choices=c("Arquitectura",
"Artes Visuales",
"Diseño",
"Facultad de Arquitectura, Arte y Diseño"), selected="Arquitectura")),
conditionalPanel(condition = "input.facultad=='Ciencias Sociales e Historia'",
selectInput("fcsh", h4("Seleccione carrera o Total Facultad"),
choices=c("Bachillerato en Ciencias Sociales y Humanidades",
"Ciencia Política",
"Historia",
"Sociología",
"Facultad de Ciencias Sociales e Historia"), selected="Bachillerato en Ciencias Sociales y Humanidades")),
conditionalPanel(condition = "input.facultad=='Comunicación y Letras'",
selectInput("fcyl", h4("Seleccione carrera o Total Facultad"),
choices=c("Literatura Creativa",
"Periodismo",
"Publicidad",
"Facultad de Comunicación y Letras"))),
conditionalPanel(condition = "input.facultad=='Economía y Empresa'",
selectInput("fee", h4("Seleccione carrera o Total Facultad"),
choices=c("Ingeniería Comercial",
"Ingeniería en Control de Gestión",
"Contador Auditor-Contador Público
(D)",
"Facultad de Economía y Empresa"))),
conditionalPanel(condition = "input.facultad=='Educación'",
selectInput("fed", h4("Seleccione carrera o Total Facultad"),
choices=c("Pedagogía Básica",
"Pedagogía Parvularia",
"Pedagogía en Educación Diferencial",
"Pedagogía en Inglés",
"Pedagogía Media en Lenguaje y
Comunicación",
"Pedagogía Media en Historia y
Ciencias Sociales",
"Facultad de Educación"))),
conditionalPanel(condition = "input.facultad=='Ingeniería y Ciencias'",
selectInput("fing", h4("Seleccione carrera o Total Facultad"),
choices=c("Ingeniería Civil Plan Común",
"Ingeniería Civil Industrial",
"Ingeniería Civil en Informática y
Telecomunicaciones",
"Ingeniería Civil en Obras Civiles",
"Facultad de Ingeniería y
Ciencias"))),
conditionalPanel(condition = "input.facultad=='Salud y Odontología'",
selectInput("fsyod", h4("Seleccione carrera o Total Facultad"),
choices=c("Enfermería",
"Kinesiología",
"Odontología",
"Obstetricia y Neonatología",
"Tecnología Médica",
"Facultad de Salud y
Odontología")))),
mainPanel(h4("Encuesta de Primer Año"),
plotOutput("grafico1"),
br(),
br(),
plotOutput("grafico2")
)
))
...这是服务器
server <- function(input, output) {
base <- reactive ({
base <- if(input$facultad == "Arquitectura, Arte y Diseño") {
filter(EPA, Carrera==input$faad)}
else
if(input$facultad == "Ciencias Sociales e Historia") {
filter(EPA, Carrera==input$fcsh)}
else
if(input$facultad == "Comunicación y Letras") {
filter(EPA, Carrera==input$fcyl)}
else
if(input$facultad == "Derecho") {
filter(EPA, Carrera == "Facultad de Derecho")}
else
if(input$facultad == "Economía y Empresa") {
filter(EPA, Carrera == input$fee)}
else
if(input$facultad == "Educación") {
filter(EPA, Carrera == input$fed)}
else
if(input$facultad == "Ingeniería y Ciencias") {
filter(EPA, Carrera == input$fing)}
else
if(input$facultad == "Medicina") {
filter(EPA, Carrera == "Facultad de Medicina")}
else
if(input$facultad == "Psicología") {
filter(EPA, Carrera == "Facultad de Psicología")}
else
if(input$facultad == "Salud y Odontología") {
filter(EPA, Carrera == input$fsyod)}
})
output$grafico1 <- renderPlot({
datos <- base()
ggplot(datos, aes(Año, EPA_T_2, label=paste(round(EPA_T_2*100, 0), "%",
sep=""))) +
geom_col(aes(y = EPA_T_2)) +
scale_x_continuous(name = "Cohorte de Ingreso",
breaks = seq(min(datos[[4]]), max(datos[[4]]), 1))
+
scale_y_continuous(name = "% de Estudiantes encuestados", labels =
scales::percent) +
geom_text(position = position_stack(vjust=0.5), size=5) +
ggtitle("Tasa de Respuesta Encuesta de Primer Año") +
theme(plot.title=
element_text(color="#666666", face="bold", size=20, hjust=0.5))
})
output$grafico2 <- renderPlot({
datos <- base()
ggplot(datos, aes(Año, EPA_T_1_OK, label=EPA_T_1_OK)) +
geom_col(aes(y = EPA_T_1_OK)) +
scale_x_continuous(name = "Cohorte de Ingreso",
breaks = seq(min(datos[[4]]), max(datos[[4]]), 1)) +
scale_y_continuous(name = "N° de Estudiantes encuestados", breaks =
seq(min(0), max(datos[[6]]+10), 20)) +
geom_text(position = position_stack(vjust=0.5), size=5) +
ggtitle("Número de Estudiantes Encuestados") + theme(plot.title=
element_text(color="#666666", face="bold", size=20, hjust=0.5))
})
}
shinyApp(ui = ui, server = server)
我以前看过这个问题,一个解决方案是将 library()
替换为 require()
,但这并没有解决问题。
经过几天尝试不同的解决方案后,发现这是一个与编码相关的问题。然而,解决方案并不是在代码中尝试编码规范(我尝试使用 enc2utf8()
和其他相关函数使用 UTF-8 保存我的应用程序和数据库;重新访问此网页上的类似问题等)。
最后,事实证明服务器正在调用数据库中充满特殊字符(主要是 ñ 和重音符号)的值。因此,解决方案是将这些调用替换为对值而不是字符串的调用。我只希望有人能早点告诉我!但无论如何,生活和学习。