R 4.0.x 是否向后兼容 R 3.6.x?

Is R 4.0.x backward compatible with R 3.6.x?

继承了一个用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 and 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:~$