【问题标题】:How to make sure the user of a shiny app is using the right package versions in R如何确保闪亮应用程序的用户在 R 中使用正确的包版本
【发布时间】:2019-08-10 06:29:46
【问题描述】:

由于最近更新包产生的几个错误的经验,我想知道以下问题的最佳方法是什么:

我目前提供了一个独立版本,可以说我的闪亮应用程序(只是在本地运行它的脚本文件)并运行一长串 require() 函数来加载/安装所需的包。但是,最后我想使用固定的包版本来避免包更改造成的错误。

有没有办法确保用户(他们的计算机上可能有较旧或较新版本的软件包)使用我的应用所需的所有软件包的正确版本?

【问题讨论】:

  • 看看?packageVersion是否对你有帮助。我想你可以在global.R 中有一个 pkg_version 表,你可以与它比较用户的包版本并更新一些将与server.R 对话的全局变量,并在启动应用程序时向用户提供一些消息。
  • 我认为在 Docker 中运行 Shiny 应该可以解决此类问题。 bjoern-hartmann.de/post/…
  • 这里很好地解释了 docker 的作用以及它如何解决您的问题:towardsdatascience.com/…

标签: r shiny package


【解决方案1】:

您可以考虑使用packrathttps://rstudio.github.io/packrat/

不幸的是,私人图书馆不适合旅行。像所有的 R 库,它们的内容是为您的特定机器编译的 架构、操作系统和 R 版本。 Packrat 让您 快照您的私人图书馆的状态,保存到您的 项目目录 packrat 需要的任何信息 在另一台机器上重新创建同一个私有库

短教程:

  1. RStudio - 文件 - 新项目 - 新目录 - 新项目 - “做:使用路径” - 创建项目

  2. 在 R(Studio) 控制台中输入:

代码:

packrat::init() 
.libPaths() # test if libpath has changed
install.packages("reshape2") # installs within one of the packrat libpaths
Installing package into ‘C:/R/packRatTest/packrat/lib/x86_64-w64-mingw32/3.4.3’

假设您可以使用和共享 RStudio 项目,但我认为没有它们无论如何都很难工作;)。

【讨论】:

  • 你试过 packrat @Mark 了吗?
  • 当我有机会时,我会尝试调查它。感谢您的提示!
【解决方案2】:

尝试将闪亮的应用程序编写为一个包。您可以通过描述文件在某种程度上控制它。

既然您说您正在使用脚本,请查看:https://github.com/chasemc/electricShine 即使你们不使用它,希望查看代码有助于将下载 repo 设置为特定的 MRAN 日期。

【讨论】:

    猜你喜欢
    • 2020-07-17
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 2016-10-23
    • 2014-10-04
    • 2015-04-28
    相关资源
    最近更新 更多