Ubuntu 22.04.3下启动R 4.3.1出现采样器警告的原因及自查方法
R启动警告:
non-uniform 'Rounding' sampler used 的原因与排查方法 警告产生的原因
这个警告是因为R启动时加载当前目录下的.RData文件时,遇到了用旧版本R(或者浮点配置不同的R)保存的对象——这些对象携带的随机数生成器(RNG)状态,和R 4.3.1默认的uniform 'Rounding'采样器不兼容。R 4.3.0版本开始对随机数生成器做了更新,默认启用了更规范的uniform采样逻辑,旧版本保存的RNG状态用的是非uniform模式,加载时就会触发这个警告。
自行排查的步骤
- 确认
.RData的来源:在R里运行file.info(".RData")查看文件修改时间,对比自己升级R 4.3.1的时间,或者直接询问文件提供者,确认是否用旧版R保存。 - 验证问题是否来自
.RData:在终端执行R --no-restore启动R,如果警告消失,就说明问题确实出在.RData文件上。 - 查看当前RNG状态:正常启动R后,运行
.Random.seed查看随机数生成器状态,对比旧版本R中的状态,就能发现格式差异。 - 定位具体出问题的对象:先运行
load(".RData"),用ls()列出所有对象,再逐个用save(obj, file="obj.RData")单独保存,之后逐个加载测试,看加载哪个对象时出现警告,即可锁定问题对象。 - 检查R的编译和系统环境:运行
sessionInfo()查看R的编译参数、系统环境变量,确认当前R的浮点配置是否和旧版本存在差异,比如编译器选项是否有改动。
内容的提问来源于stack exchange,提问作者Alexis
相关产品推荐
相关产品推荐

