我正在使用内部包"MyPKG"编写一个可重复分析的协议.每个用户都将提供自己的输入文件; 除输入外,分析应在相同条件下进行.(例如,我们可以推断出不同的结果是由不同的输入文件引起的).
MyPKG正在开发中,因此library(MyPKG)将加载用户在其本地库中编译的最后一个版本.它还将加载在本地库中找到的任何依赖项.
但我希望每个人都使用特定版本(MyPKG_3.14)进行此分析,同时仍允许开发更新版本.如果我理解正确,"R --vanilla"将为每个人加载相同的依赖项.
完成后,我们将工作环境保存为VM,以维持稳定的可重现环境.因此,临时(6个月)的解决方案就足够了.
我提出了两个可能的解决方案,但我不确定是否足够.
要求服务器管理员将MyPKG_3.14安装到默认的R路径中,然后在协议中提供以下代码:
R --vanilla
library(MyPKG)
....
Run Code Online (Sandbox Code Playgroud)
要么
在特定的库中编译MyPKG_3.14,例如lib.loc ="/ home/share/lib/R/MyPKG_3.14",然后提供
R --vanilla
library(MyPKG)
Run Code Online (Sandbox Code Playgroud)SessionInfo()吗?几点:
/usr/local/lib/R/site-library(如果添加到拥有该目录的组,用户也可以安装)。这样每个人都会得到相同的版本$R_HOME/etc/下面的点文件~/。出于同样的原因,Debian / Ubuntu 软件包提供了软链接/etc/R/installed.packages())以报告包和版本。关于最后一点我家里的盒子说
> edd@max:~$ lsb_release -a | tail -4
> Distributor ID: Ubuntu
> Description: Ubuntu 12.04.1 LTS
> Release: 12.04
> Codename: precise
> edd@max:~$
Run Code Online (Sandbox Code Playgroud)
这是一个开始。
| 归档时间: |
|
| 查看次数: |
350 次 |
| 最近记录: |