为什么RStudio在View期间调用随机生成器?

我在Mac上使用RStudio 0.99.467和R 3.2.2,我注意到View调用随机数生成器,或类似的东西.以下是代码:

set.seed(1) # not needed when I run it on RStudio, but needed on R
rs <- .Random.seed
cat(76 + 8)
all(.Random.seed == rs)
# TRUE  -- because a simple function shouldn't change the random numbers
View(3)
all(.Random.seed == rs)
# FALSE -- ???

实际上,唯一的区别在于.Random.seed的第二个数字

all((.Random.seed == rs)[-2])
# TRUE

这总是增加10个单位

.Random.seed[2] - rs[2]
# 10

这是View函数的预期行为还是我正在运行的版本中的错误?

最佳答案 这确实是预期的. RStudio的数据查看器在0.99中使用R示例函数为您的数据生成随机缓存键. 0.98中的数据查看器没有这样做(它只是生成原始HTML).

我刚刚为我们记录了一个问题,以便在将来的版本中去除这种副作用(我同意观察数据会改变你的随机种子是出乎意料的).

点赞