已关闭,此问题为opinion-based,目前不接受回答。
**想改进这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。
4天前关闭。
这篇文章是编辑并提交审查3天前.
Improve this question
有时候我需要运行一些旧的R代码,这些代码是我以前用的包版本,而不是我现在用的R版本。当我不需要用当前包的新函数更新和纠正脚本时,只是检查这些脚本的结果,什么是更安全的方法?直到我知道我发现了两种可能性。
1.安装多个R版本及其相关的“旧”包,并根据需要从一个版本转换到另一个版本,如果可能的话,可以从rstudio。
1.只有一个R版本(假设这是一个相对较新的版本),并在需要时使用旧软件包,以防使用旧软件包时出现依赖性问题。
第一个选择对我来说是一场灾难,因为我试图以不同的方式安装其他版本的R,还必须“调整”我的Debian发行版(靶心)接受最新的R版本,它变得不稳定,最后我不得不格式化我的PC.相关问题here和here,但在尝试建议的解决方案之前,我想知道是否有其他的选择。所以我会很感激任何关于用旧的包/函数运行旧脚本的更容易和更安全的方法的见解。
1条答案
按热度按时间a1o7rhls1#
这很好地利用了R使用不同库路径的能力。您可以通过
.libPaths()
轻松设置这些路径。作为一个具体的例子,我碰巧喜欢使用
roxygen2
版本6.0.1。所以我把它放在一个我的“正常”R安装不知道的目录中。在一个帮助脚本中(我也喜欢从命令行使用它),我然后这样做。字符串
并且在存在该目录的机器上,它将被前缀到库路径,并且在该会话中使用较旧的roxygen版本。
你可以很容易地概括这一点,我们已经为持续集成和其他用例做了这样的工作。
另一个例子是 e.g. 由我使用
r-devel
提供的,因为它有自己的库路径(这样我就可以让r-devel
编译包,然后是系统编译包(这样我就不必重新构建所有包)):型