我可以成功使用foverlaps我的数据集的一小部分样本,但是当使用完整数据(data.tables超过30k行)时,它会崩溃并抛出以下错误:
错误信息:
Error in if (any(x[[xintervals[2L]]] - x[[xintervals[1L]]] < 0L)) stop("All entries in column ", :
missing value where TRUE/FALSE needed
Run Code Online (Sandbox Code Playgroud)
我解释错误消息的方式是两个data.tables之间没有重叠.
Q1-Am我能很好地解释这个消息吗?
Q2 - 任何想法为什么这可能发生在更大的数据集上?这可能是由于数据集的大小造成的吗?
我确实有很多独特的值,根据foverlaps帮助文件,可以预期会按比例减慢速度,但不会在它进入数百万行之前,这远非如此.谢谢.
没有可重现的示例,因此无法调查您的问题。
正如 Carl 在评论中所述,这可能是由输入中存在的 NA 值引起的。在最近的开发版本中,Arun
进行了一些改进。foverlaps其中一项改进是在检测到 NA 值时提供更好的错误消息。
install.packages("data.table")
Run Code Online (Sandbox Code Playgroud)
自 1.12.2 起,此功能已在 CRAN 上出现。