以下是我收到的错误:
Loading required package: tmap
Warning in library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
there is no package called ‘tmap’
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages(p) :
'lib = "/usr/local/lib/R/site-library"' is not writable
Error in value[[3L]](cond) : unable to install packages
Calls: local ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted
以下是我的代码:
packages = c('tmap', 'sf', 'tidyverse', 'RColorBrewer', 'classInt',
'raster', 'sp', 'REAT', 'SpatialAcc', 'shiny', 'leaflet', 'factoextra',
'NbClust')
for(p in packages){
if(!require(p, character.only = T)){
install.packages(p)
}
library(p, character.only = T)
}
可能是什么问题?。
我尝试通过rstudio中的以下命令进行部署。
library(rsconnect)
rsconnect::deployApp('D:/student/mypath')
答案 0 :(得分:1)
问题是shinyapps.io
不允许您在其服务器上安装R软件包。由于安全原因,允许这样做是不合理的,所以请不要试图“破解”你的安装方式。
而是在github repo shinyapps dependencies上提交问题(或PR)并要求他们支持您丢失的软件包。
第二种解决方案是购买服务器并自行设置闪亮服务器。然后您可以随意安装包。有关这方面的说明可以在here找到。
修改:实际上,shinyapps.io
似乎支持自定义库,它们将根据您的library
和require
来自动安装。因此,您可能只需要删除已上传应用中的ìnstall.packages
部分。
部署应用程序时,rsconnect程序包会尝试检测应用程序使用的程序包。 rsconnect将此包列表及其依赖项与您的应用程序一起发送到shinyapps.io服务。然后shinyapps.io构建并将软件包安装到您的应用程序的R库中。第一次部署应用程序时,可能需要一些时间来构建这些程序包(取决于使用的程序包数量)。但是,您不会等待在将来的部署期间构建这些程序包(除非您升级或降级程序包)