【发布时间】:2014-04-25 12:36:37
【问题描述】:
我正在使用 data.table 进行快速子集。但是,如果我不基于等于值但小于的键进行子集化,则需要花费大量时间。 例如:
DT["2"]
速度很快,而
DT[key<2]
很慢。
我假设第一个是二进制搜索,第二个是矢量扫描,但是如何快速完成第二个?
感谢您的回答。
【问题讨论】:
-
DT[2]与DT[key==2]不同!如果你真的设置了密钥,你的第二个版本应该会非常快。 -
我知道
DT[2]进行二分搜索(快),而DT[key==2]进行矢量扫描(慢)。但是,DT[2]得到 0.03 秒,DT[key<2]得到 0.5 秒。有没有可能有一个快速的DT[key<2]? -
您需要提供有关您的数据的更多信息。数据有多大。你有没有设置密钥?顺便说一句 -
DT[2]给出第二行而不是key == 2所在的行
标签: r comparison data.table subset