为什么交叉(...)比数据表连接更快?

 秦子萱135709 发布于 2023-02-13 15:26
  • php
  • 1 个回答
    • 当给出"大"问题时,data.table的力量会闪耀.开销[.data.table将使实际花费在二进制搜索组件上的时间相形见绌.

      如果你给它一个"大"问题,那么data.table将扩展,你会看到差异.

      # a "bigger" problem
      a <- c(55, 1:25e6)
      b <- c(55,30:40e6)
      
      library(data.table)
      dt.a <- data.table(x=a,key="x")
      dt.b <- data.table(x=b,key="x")
      
      library(microbenchmark)
      
      microbenchmark(intersect(a,b), dt.a[dt.b, nomatch=0],times=5)
      ## Unit: seconds
      ##                     expr      min       lq   median       uq      max neval
      ##          intersect(a, b) 6.848245 6.897009 6.962055 7.052095 7.058509     5
      ##  dt.a[dt.b, nomatch = 0] 3.629062 3.654269 3.685051 3.721983 3.815155     5
      

      2023-02-13 15:27 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有