【发布时间】:2021-12-25 16:18:57
【问题描述】:
我试图部署一个 R Shiny 应用程序,当我在本地运行它时它可以完美运行。但是当我部署应用程序时,它会在一些输出中显示错误消息:“Error: An error has occurred. Check your logs or contact the app author for clarification.”。
看了几个帖子,我觉得跟包的加载有关。
我正在使用以下软件包:
library(shiny)
library(magrittr)
library(shinyjs)
library(DT)
library(ggthemes)
library(shinythemes)
library(r2symbols)
library(caret)
# install.packages("PresenceAbsence")
library(glmnet)
library(tidyverse)
# install.packages("devtools")
我在从全新会话部署应用程序时收到以下警告。我不是特别清楚出了什么问题(因为该应用程序在我的 R 会话上运行)。您能否向我建议一些我应该尝试让应用程序在服务器上运行的事情?
Loading required package: shiny
Warning: package ‘shiny’ was built under R version 3.6.3
Warning: package ‘shinyjs’ was built under R version 3.6.3
You can use shinyjs to call your own JavaScript functions:
https://deanattali.com/shinyjs/extend
Attaching package: ‘shinyjs’
The following object is masked from ‘package:shiny’:
runExample
The following objects are masked from ‘package:methods’:
removeClass, show
Warning: package ‘DT’ was built under R version 3.6.3
Attaching package: ‘DT’
The following objects are masked from ‘package:shiny’:
dataTableOutput, renderDataTable
Warning: replacing previous import ‘vctrs::data_frame’ by ‘tibble::data_frame’ when loading ‘dplyr’
Warning: package ‘ggthemes’ was built under R version 3.6.3
Warning: package ‘shinythemes’ was built under R version 3.6.3
Warning: package ‘r2symbols’ was built under R version 3.6.3
Attaching package: ‘r2symbols’
The following object is masked from ‘package:ggplot2’:
sym
Warning: package ‘caret’ was built under R version 3.6.3
Loading required package: lattice
Warning: package ‘lattice’ was built under R version 3.6.3
Attaching package: ‘PresenceAbsence’
The following objects are masked from ‘package:caret’:
sensitivity, specificity
Warning: package ‘glmnet’ was built under R version 3.6.3
Loading required package: Matrix
Loaded glmnet 4.0-2
Warning: package ‘tidyverse’ was built under R version 3.6.3
-- Attaching packages -------------------------------------------------------------------------- tidyverse 1.3.0 --
v tibble 3.0.4 v dplyr 1.0.0
v tidyr 1.0.2 v stringr 1.4.0
v readr 1.3.1 v forcats 0.4.0
v purrr 0.3.3
Warning: package ‘tibble’ was built under R version 3.6.3
Warning: package ‘dplyr’ was built under R version 3.6.3
-- Conflicts ----------------------------------------------------------------------------- tidyverse_conflicts() --
x tidyr::expand() masks Matrix::expand()
x tidyr::extract() masks magrittr::extract()
x dplyr::filter() masks stats::filter()
x dplyr::lag() masks stats::lag()
x purrr::lift() masks caret::lift()
x tidyr::pack() masks Matrix::pack()
x purrr::set_names() masks magrittr::set_names()
x dplyr::sym() masks r2symbols::sym(), ggplot2::sym()
x tidyr::unpack() masks Matrix::unpack()
Listening on http://127.0.0.1:6757
更多详情:
我还在服务器部分提到了我的输出,它在部署到 Shiny 服务器时不会显示,但在从本地 PC 运行时可以工作。 pred_prob_func() 使用来自 caret 包的随机森林,并使用随机森林模型 (ranger) 获得预测概率。我什至不确定包加载是一个问题,但我想是的。但是,我不知道为什么它可以在我的 PC 上运行,而不是在 Shiny 服务器上运行。版本问题?
输出:
# Heatmap predicted probabilities
output$Heatmap_predicted_probabilities <- renderPlot({
plot(x=seq(0,1,0.01), y=rep(0,101), main="Heatmap of predicted probabilities", xlab="The square cross symbol represents the predicted probability based on input values on the dashboard", ylab="", xlim=c(0,1), ylim=c(-0.1,0.1), yaxt="n", bty="n", pch=15, cex=20, col=hsv(0.05, seq(0,1,length.out = 101), 0.80))
points(x=pred_prob_func(input_list())$pred_prob, y=0, lwd=2, pch=7, cex=4)
})
【问题讨论】:
-
你似乎有很多冲突。请确保您在函数前面附加了包名称。例如,您可以使用
dplyr::filter(...),而不仅仅是filter(...)。 -
@YBS 谢谢!我检查并发现在部署到 Shiny 服务器时输出的部分不起作用。我已经在上面的“更多详细信息”下添加了它们。
-
我尝试安装最新版本的 R,但现在我收到一条错误消息“错误:未处理的异常:子任务 1049338094 失败:构建映像时出错:R 版本 4.1.2 当前不可用执行暂停”
-
在您的情况下,您应该为以下函数指定调用的包:
sym、sensitivity、specificity。例如,调用package::sensitivity,其中package是您的程序中实际感兴趣的包。另外,请使用DTOutput和renderDT,而不是dataTableOutput、renderDataTable -
嗨,我刚刚检查了 Shiny 应用程序还不支持最新的 R 版本。所以,我又重新使用了另一个旧版本的 R。
标签: shiny shiny-server shinyapps