我发现了一些关于R中的最佳实践、可重复性和工作流程的帖子,例如:
- How to increase longer term reproducibility of research (particularly using R and Sweave)
- Complete substantive examples of reproducible research using R
其中一个主要的关注点是确保代码的可移植性,因为将代码移动到新的机器(可能运行不同的操作系统)相对简单,并且得到相同的结果。
作为一个Python背景,我已经习惯了虚拟环境的概念。当加上一个所需包的简单列表时,这在某种程度上可以确保安装的包和库在任何机器上都可用,而不会太麻烦。当然,这不能保证--不同的操作系统有它们自己的弱点和特点--但它可以让你达到95%的目标。
这样的东西在R中存在吗?即使它不那么复杂。例如,简单地维护一个所需软件包的纯文本列表和一个安装任何缺失软件包的脚本?
我即将开始第一次认真地使用R,可能是和Swave一起使用,我希望以最好的方式开始!谢谢你的想法。
6条答案
按热度按时间plicqrtu1#
我将使用@cboettig发布的评论来解决这个问题。
Package 工
Packrat是R的一个依赖管理系统。给你三个重要的优势(都集中在你的可移植性需求上)
下一步是什么?
1.演练指南:http://rstudio.github.io/packrat/walkthrough.html
1.最常用的命令:http://rstudio.github.io/packrat/commands.html
1.在RStudio中使用Packrat:http://rstudio.github.io/packrat/rstudio.html
1.限制和警告:http://rstudio.github.io/packrat/limitations.html
hi3rlvi22#
Anaconda软件包管理器
conda
supports creating R environments .我在使用
conda
维护不同的Python安装方面有很好的经验,既有用户特定的,也有同一用户的几个版本。我用conda
和jupyter-notebook
测试了R,它工作得很好。至少对我的需要来说,包括使用DEseq2
和相关包进行RNA测序分析。以及data.table
和dplyr
。有许多生物导体包可在conda
通过bioconda和根据评论this SO question,似乎install.packages()
可能工作以及。8nuwlpux3#
看起来RStudio devs还有另外一个选项renv,它可以在CRAN上使用,取代了Packrat。
简而言之,使用
renv::init()
初始化项目库,使用renv::snapshot()
/renv::restore()
保存和加载库的状态。与conda r-environment相比,我更喜欢这个选项,因为这里的所有内容都存储在文件
renv.lock
中,该文件可以提交到Git repo并分发给团队。mrphzbgm4#
要对此进行补充:
注意:1.已安装Anaconda 2.假设您的工作目录为"C:"
创建所需环境-〉"r_environment_name"
查看可用环境
啊...
激活环境
启动Jupyter笔记本电脑,让党开始
对于类似的"requirements.txt",也许这个链接会有所帮助-〉Is there something like requirements.txt for R?
sg2wtvxw5#
查看RoveR,R容器管理解决方案,详细信息请参见https://www.slideshare.net/DavidKunFF/ownr-technical-introduction,特别是幻灯片12。
要安装roveR,请在R中执行以下命令:
为了充分利用roveR的强大功能(包括安装特定版本的软件包以实现可复制性),您需要访问laiR -对于CRAN,您可以使用我们位于https://lair.ownr.io的laiR示例,如果要上传您自己的软件包并与您的组织共享,您需要laiR许可证。您可以通过上面链接的演示文稿中的电子邮件地址与我们联系。
6gpjuf906#
对于 .ipynb 文件,R内核就足够了,您不需要安装带有R的虚拟环境,只需:
jupyter notebook