I am currently running R version 3.1.0 (on Ubuntu 12.04 LTS) and as both my R version and my operating system is getting rather old, I plan on updating both. However, I have a lot of simulations that rely on set.seed() and I would like them to still give me the same random numbers after updating both R and my operating system.
So my question is three-fold.
If you installed R on two different operating systems without manually changing defaults or the RProfile, you should get the same results when using set.seed().
It used to be the case that set.seed() would give the same results across R versions, but that's no longer generally true thanks to a little-announced update in R 3.6.0. So you can get cross version consistency comparing results before R 3.6.0, but if you compare a post-3.6.0 use of set.seed() to a pre-3.6.0 use of set.seed(), you will get different results.
You can see that in the examples below:
> set.seed(1999)
> sample(LETTERS, 3)
[1] "T" "N" "L"
> set.seed(1999)
> sample(LETTERS, 3)
[1] "T" "N" "L"
set.seed(1999)
sample(LETTERS, 3)
[1] "D" "Z" "R"
The reason for the inconsistency is that in R 3.6.0, the default kind of under-the-hood random-number generator was changed. Now, in order to get the results from set.seed() to match, you have to first call the function RNGkind(sample.kind = "Rounding").
> RNGkind(sample.kind = "Rounding")
Warning message:
In RNGkind(sample.kind = "Rounding") : non-uniform 'Rounding' sampler used
> set.seed(1999)
> sample(Letters, 3)
[1] "T" "N" "L"