首页 > 解决方案 > 在本地服务器上的应用程序中保存和加载工作区

问题描述

我有一个在本地服务器上运行的闪亮应用程序,可通过网络浏览器通过“ip-adres:port”访问。我在执行以下代码的任务计划器中安排了一个任务(路径:“C://Users//Administrator//Documents//run.R”

require(shiny)
folder_address = "C://Users//Administrator//Documents//App//app.R"

x <- system("ipconfig", intern = TRUE)
z <- x[grep("IPv4", x)]
ip <- gsub(".*? ([[:digit:]])", "\\1", z)

runApp(folder_address, launch.browser = FALSE, port = 1234, host = ip)

任务执行得很好,因为我可以通过“ip:port”访问应用程序。

在开始时,app.R我手动加载工作区:load("C://Users//Administrator//Documents//App//.RData"). 当我不手动加载它时,应用程序将无法识别应用程序的变量/数据框。

我的问题如下:

如何保存应用程序的工作区,而不是 的工作区run.R?一种解决方法是让任务每天运行并让它打开。但是,一旦任务因更新而停止,我们将不得不手动重新运行该任务。

标签: rshiny

解决方案


有几种方法可以获得您想要的结果。

持久化数据的两种最佳方式是使用数据库或将对象存储在 Amazon S3 等服务中。

如果您必须保存 R 环境,您是否可以调整您的应用程序以在每次编辑后保存,以便如果它确实被中断,它会在第二天早上在同一个位置重新开始?

或者,您是否可以重构您的应用程序以保存rds文件(r 文件)并在应用程序启动时读取它们,并在编辑后保存每个文件(这可能比保存整个 R 环境快得多)


推荐阅读