Foverlaps错误:if(any [x [[xintervals [2L]]] - x [[xintervals [1L]]]< 0L)中的错误停止

时间:2015-05-07 13:23:44

标签: r data.table

我可以成功地使用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

我解释错误信息的方式是两个data.tables之间没有重叠。

Q1-Am我能很好地解释这个消息吗?

Q2 - 任何想法为什么这可能会发生在更大的数据集中?这可能是由于数据集的大小造成的吗?

我确实有很多独特的值,根据foverlaps帮助文件,可以预期会按比例减慢速度,但不会在它进入数百万行之前减速,这远非如此。谢谢。

1 个答案:

答案 0 :(得分:0)

没有可复制的示例,因此无法调查您的问题。
正如卡尔在评论中所述,这很可能是由输入中存在的NA值引起的。
在最新的开发版本中,Arun对foverlaps进行了一些改进。这些改进之一是在检测到NA值时更好的错误消息。
要安装最新的开发版本,请使用以下调用。

install.packages("data.table", repos="https://Rdatatable.gitlab.io/data.table")

此功能即将作为1.12.2发布到CRAN。