新安装R后运行test.data.table()出现10项错误的技术求助
刚在全新的R环境里运行test.data.table()就遇到测试失败?先看看你碰到的具体错误:
test.data.table()
Error in eval(exprs[i], envir) : 在2018年4月3日11:28:16执行inst/tests/tests.Rraw中的8403项测试时,出现10项错误(lastID=1887, endian==little, sizeof(long double)==16, sizeof(pointer)==8)。错误测试编号为:546, 1693.4, 1693.5, 1693.6, 1693.7, 1693.9, 1702.1, 1702.2, 1702.3, 1702.4。所有错误类型均为:测试testnum执行无错误,但未通过x等于y的校验:Where...的内容
这类测试不通过的问题大多和安装兼容性、环境配置有关,给你几个靠谱的解决思路:
优先尝试源码重装data.table
二进制安装包偶尔会出现系统适配问题,卸载后从源码编译安装能最大程度匹配你的环境:remove.packages("data.table") install.packages("data.table", type = "source")注意Linux系统需要提前装好
gcc、make这类编译工具,Windows用户要确保安装了对应版本的Rtools。检查R版本与系统架构的匹配度
错误信息里的sizeof(pointer)==8说明你用的是64位系统,要确认你的R版本也是64位的,同时确保系统没有缺失data.table依赖的底层库(比如libssl、libcurl这类)。单独运行失败测试,定位具体问题
你可以单独执行某个失败的测试项,查看更详细的不匹配细节,比如运行测试546:test.data.table(546)这样能知道是数值精度差异、数据结构不匹配还是其他问题,方便针对性调整。
更新到data.table的最新稳定版
你遇到的测试用例问题可能是旧版本的已知bug,更新到最新版通常能解决:install.packages("data.table", repos = "https://cran.rstudio.com/")在干净的R会话中测试
其他已加载的R包可能和data.table存在冲突,重启R后只加载data.table再运行测试:library(data.table) test.data.table()
内容的提问来源于stack exchange,提问作者Gautam

