ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

gtools:Stata 分组操作提速利器,gcollapse 跑千万行数据不再等

gtools:Stata 分组操作提速利器,gcollapse 跑千万行数据不再等 gtoolsStata 分组操作提速利器gcollapse 跑千万行数据不再等【免费下载链接】stata-gtoolsFaster implementation of Statas collapse, reshape, xtile, egen, isid, and more using C plugins项目地址: https://gitcode.com/gh_mirrors/st/stata-gtools百万行的 collapse 从几十分钟压到几秒——这就是 gtools 要干的事。它把 collapse、reshape、egen、xtile、isid、levelsof、contract 等常用命令用 C 插件重写了一遍哈希分组加单整数排序绕开原生命令里一层层的临时循环。作者是 Mauricio Caceres Bravo许可证为 MIT。一条命令装完立刻能跑安装走 SSC两条命令就够升级插件跟着走ssc install gtools gtools, upgrade跑通感怎么建立加载自带数据用 gcollapse按分组折叠/汇总数据的命令试一次sysuse auto, clear gcollapse (mean) price_avg price (median) mile_med mileage, by(maker)跑完内存里只剩每家厂商一行均价、里程中位数各一列列名随便起。gcollapse 还支持 merge 选项把结果直接合回原表省掉存盘再合并那一步。比原生 collapse 快在哪原理不神秘把 by 变量哈希成 128 位整数后对整数排序接近 O(N) 的计数排序而通用排序是 O(N log N)同时统计逻辑全部下沉到 C不再每个统计量走一遍 ado 循环。所以组数相对行数越少优势越夸张——分位数类统计量在小数据上就快 10 到 30 倍旧版 Stata 上分组汇总最高可到百倍。注意官方提醒Stata 17 之后原生 collapse 本身提速明显多核 MP 版本上原生甚至可能反超 gcollapse但在 SE 及更早版本gcollapse 依然占优。三个高频场景各配一条命令场景一清洗流水时先按厂商折叠再合回原表替代「collapse → save → merge」三步曲gcollapse (mean) price_avg price, by(maker) merge执行完 maker 的均价就挂在原数据每一行上。场景二按组生成分位数变量替代 xtile/pctile天然支持 by() 和权重gquantiles q_decile mileage, xtile nq(10) by(maker)每个厂商内部分十档十列新变量一次到位想同时存分位切点再加相应选项即可。场景三需要稳定排序时hashsort基于哈希的稳定排序命令比 sort/gsort 更省hashsort -mileage maker, mlast降序排 mileage行为等价于 gsort同序行的相对顺序保持稳定。我踩过的坑直接说只编译了 64 位插件32 位机器请放弃或自行交叉编译。变量数受插件接口限制IC 版约 800 个MP 版一万多。超了会直接报错先精简变量。观测数上限 21 亿2^31-1受 Stata 自身 bug 拖累不是 gtools 的锅。strL超长字符串变量Stata 14 以下插件接口只读而 gcollapse、gcontract、greshape 还得写回内存所以直接不支持。建议转成短字符串或数值编码。插件执行期间窗口可能「假死」。真卡死是内存不够在换页盯一下磁盘或 swap 活动即可判断别急着强杀。临时目录只读会报 r(608)设 global GTOOLS_TEMPDIR 指到可写目录。没有多线程。单线程已经是这个量级的提速多核红利目前吃不到。什么时候换别的工具工具什么时候该换它ftoolsgtools 的灵感来源功能面更全、还有好用的 Mata API但它要求分组变量纯数值或纯字符串混合类型是短板且同命令实测通常比 gtools 慢 2 到 9 倍reghdfe目标是多元高维固定效应回归时。gstats hdfe 只做残差化不出回归表完整估计还是找它代码就放在 gitcode 镜像上clone 下来对照 docs/benchmarks/quick.py 自己跑一轮基准最踏实仓库地址 https://gitcode.com/gh_mirrors/st/stata-gtools【免费下载链接】stata-gtoolsFaster implementation of Statas collapse, reshape, xtile, egen, isid, and more using C plugins项目地址: https://gitcode.com/gh_mirrors/st/stata-gtools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表