R语言仅使用base包函数实现单列聚合的更优方案求解
R 单变量频数统计的base包最优实现
首选方案
base R 原生提供的table()是专门用于取值频数统计的内置函数,代码最简洁、性能也最优:
# 输出为表格格式的统计结果 table(dd$x) # 若需要返回和你现有代码输出结构一致的data.frame as.data.frame(table(dd$x), responseName = "y")
现有代码的优化版本
你当前的实现额外新增了辅助列、调用了不必要的do()函数,用aggregate可以直接简化为:
# 无需管道和冗余的辅助列声明 aggregate(list(y = dd$x), list(x = dd$x), FUN = length)
其他可选base实现
如果不需要严格返回data.frame格式,也可以用tapply实现分组统计:
tapply(dd$x, dd$x, FUN = length)
内容的提问来源于stack exchange,提问作者user14892865
相关产品推荐
相关产品推荐

