有人可以帮我评估使用data.table的数据框的大小,搜索速度更快吗?在我的用例中,数据框将是24,000行和560,000行.总共挑出40行的块以供进一步使用.
示例:DF是一个包含120行,7列(x1到x7)的数据帧; "string"占据x1的前40行.
DF2是DF => 120,000行的1000倍
对于DF data.table的大小较慢,对于DF2的大小,它更快.
码:
> DT <- data.table(DF)
> setkey(DT, x1)
>
> DT2 <- data.table(DF2)
> setkey(DT2, x1)
>
> microbenchmark(DF[DF$x1=="string", ], unit="us")
Unit: microseconds
expr min lq median uq max neval
DF[DF$x1 == "string", ] 282.578 290.8895 297.0005 304.5785 2394.09 100
> microbenchmark(DT[.("string")], unit="us")
Unit: microseconds
expr min lq median uq max neval
DT[.("string")] 1473.512 1500.889 1536.09 1709.89 6727.113 100
>
>
> microbenchmark(DF2[DF2$x1=="string", ], unit="us")
Unit: microseconds
expr min lq median uq …Run Code Online (Sandbox Code Playgroud)