使用R进行分组统计
统计 进行 分组 使用
2023-09-14 08:57:09 时间
分组统计数据集是很常见的需求,R中也有相应的包支持数据集的分组统计。自己尝试了写了段R代码来完成分组统计数据集,支持公式,感觉用起来还算方便。代码分享在文章最后。
使用方式:
step 1: source('AggregateSummary.R')
step 2: pastecs_summary(mpg+hp+wt~am,data=mtcars)
执行结果如下:
AggregateSummary.R的源码:
library(plyr) library(stringr) library(pastecs) parseformula <- function(formula = "... ~ variable", varnames, value.var = "value") { remove.placeholder <- function(x) x[x != "."] replace.remainder <- function(x) { if (any(x == "...")) c(x[x != "..."], remainder) else x } if (is.formula(formula)) { formula <- str_c(deparse(formula, 500), collapse = "") } if (is.character(formula)) { dims <- str_split(formula, fixed("~"))[[1]] formula <- lapply(str_split(dims, "[+*]"), str_trim) formula <- lapply(formula, remove.placeholder) all_vars <- unlist(formula) if (any(all_vars == "...")) { remainder <- setdiff(varnames, c(all_vars, value.var)) formula <- lapply(formula, replace.remainder) } } if (!is.list(formula)) { stop("Don't know how to parse", formula, call. = FALSE) } lapply(formula, as.quoted) } evalFormula <- function(formula,data){ fo<-parseformula(formula) lapply(fo,eval.quoted,envir=data) } pastecs_Summary<- function(formula,data){ tmplist<-evalFormula(formula,data) df1<-as.data.frame(tmplist[1]) uni<-unique(tmplist[[2]][[1]]) lst<-list() for(i in uni){ lst[[paste(names(tmplist[[2]]),i)]]<-stat.desc(df1[which(tmplist[[2]][[1]]==i),]) } return(lst) }
相关文章
- 数据重组:对一堆相似字典进行分类统计(shidebin)
- 【刷题】面筋-linux统计文件中字符串次数及文件夹下特定类型文件个数
- 6个常用第三方网站统计工具特点优势比较 - 站长应该选择谁?
- 《卸甲笔记》-分组统计查询对比之二
- Atitit 集合分组聚合操作sum count avg java版本groovy版本 目录 1. //按性别统计用户数1 7. //按性别获取用户名称1 16. //按性别求年龄的总和1 2
- Excel:Excel使用技巧经验总结之(利用Excel自带功能统计各个字段不同类别及其个数并进行图表可视化+非编程实现)图文教程之详细攻略
- ML之FE:特征工程/数据预处理之构造特征之特征分箱/数据分桶的常用六大类方法—基于统计(等距/等频+分位数+标准差/f方差)、基于数据分布(自然断点+重尾分布)、基于评价指标的自适应(卡方/Bes
- Python语言学习之pandas:利用pandas库统计某一列col中各个值出现的次数(降序输出)并绘图可视化
- ML之FE:利用pandas的pd.cut函数对【数字型】字段进行分箱处理函数封装并统计个数
- 测试用例(功能用例)——资产申购、统计报表
- 数学建模学习(2):数据统计与分析之偏度,峰度
- 主要是解决,作为一个数据共享的数据库,存在的数据库统计,然后将计算的数据量输出到自己使用的数据库,进行主页面展示。
- Java对MongoDB进行分组操作并统计各个分组的数量
- PTA--基础编程题目集--6-7 统计某类完全平方数