【发布时间】:2021-03-02 08:22:09
【问题描述】:
我继承了一个在 R 3.6.1 中开发和调试的项目。我是否应该期望它可以在 R 4.0.x(当前最新版本是 4.0.3)上运行?
【问题讨论】:
我继承了一个在 R 3.6.1 中开发和调试的项目。我是否应该期望它可以在 R 4.0.x(当前最新版本是 4.0.3)上运行?
【问题讨论】:
是的。
R 几乎总是如此,无一例外。
最近的一个小问题(相对于早期版本影响 3.6.0)与统一随机数生成器的一个小问题修复有关,使之前生成的序列(也用于采样)与当前生成的序列不同,但即使这样也很好发出信号。请参阅文件 NEWS.Rd、NEWS.3.Rd、NEWS.2.Rd、NEWS.1 和 NEWS.0,了解非常仔细、非常明确的更改列表。
最重要的是,您甚至不必相信我的话。您可以将 R 4.0.* 作为 Docker 容器安装并尝试您的代码并说服自己。
编辑:我碰巧为 Debian 和 Docker 维护 R,所以我在这里有几个版本的容器。看看下面绘制三个 N(0,1) 数字的代码如何在四个不同年份的 R 中得到相同的结果。如果我在这里有更多容器或更旧的 R,我可以展示更多。
edd@rob:~$ docker run --rm -ti r-base:3.3.1 Rscript -e 'set.seed(42); rnorm(3)'
[1] 1.3709584 -0.5646982 0.3631284
edd@rob:~$ docker run --rm -ti r-base:3.4.4 Rscript -e 'set.seed(42); rnorm(3)'
[1] 1.3709584 -0.5646982 0.3631284
edd@rob:~$ docker run --rm -ti r-base:3.5.3 Rscript -e 'set.seed(42); rnorm(3)'
[1] 1.3709584 -0.5646982 0.3631284
edd@rob:~$ docker run --rm -ti r-base:3.6.3 Rscript -e 'set.seed(42); rnorm(3)'
[1] 1.3709584 -0.5646982 0.3631284
edd@rob:~$ docker run --rm -ti r-base:4.0.3 Rscript -e 'set.seed(42); rnorm(3)'
[1] 1.3709584 -0.5646982 0.3631284
edd@rob:~$
【讨论】: