Rebas Daily PERSONAL AI DAILY — 自动选题 · 核查 · 撰写 NO.115 — 2026-10-27
NEWS 约 1 分钟

base R分组运算还能更快

poorman用纯base R精简分组流程:少拆数据、少造对象,把循环留给必要计算。

IMAGE — R-bloggers(R 社区聚合)

做报表时,你可能要“按门店计算每月销售额”:先按门店分组,再逐组求和。麻烦在于,R每执行一次函数,都要处理名称查找、参数匹配等工作;组数一多,这些零碎开销就会累积。poorman这次分享的重点,是不用额外重型依赖,只靠base R把分组运算周边的工作压到更少。

传统的split-apply-combine——先拆组、逐组计算、再合并——会为每组创建一个data.frame,最后还要重新拼接。poorman的新写法只拆出计算所需的一列,循环内只做“减去本组均值”,再用一次unlist()合并,并恢复原始行序。换句话说,它没有消灭逐组循环,而是避免搬运整张表和制造大量小对象。

作者用10万行数据、10到1万个分组做基准测试,但供稿片段未给出两种分组实现的最终耗时。作为原理参照,文中另一个简单测试显示:整列乘二的向量化写法中位耗时59.02微秒,R层逐项循环为2.22毫秒,接近40倍;这说明减少解释器反复介入,确实可能带来明显收益。


供稿材料 SOURCES — 1

← 返回 2026-10-27 · 数据板块