今天尝试用summarise做数据整理失败了,发现是由于summarise函数无法配合循环使用。

在网上寻找后发现aggregate函数刚刚好实现了我的需求,而且不用写循环,大大降低了失败率,特此分享给大家。

aggregate函数的功能很强大,它可以将数据按行进行分组,然后对每一组数据进行函数统计,最后把结果组合成一个表格返回。它可以应用于数据框(data.frame)、公式(formula)和时间序列(ts)等。

我们来看一下这个函数的语法:

aggregate(x, by, FUN, ..., simplify = TRUE)  aggregate(formula, data, FUN, ..., subset, na.action = na.omit)  aggregate(x, nfrequency = 1, FUN = sum, ndeltat = 1, ts.eps = getOption("ts.eps"), ...)

输入: ?aggregate来获取帮助。

先看这个函数的用法示范:

在R中输入:mtcars 来获取不同类型汽车道路测试的数据框类型数据。

一句话实现按cyl(汽缸数)进行分类计算平均值:

1、3个 数据 源有一个 相同 的字段“batch_no”,根据此 相同 字段将3个 数据 数据 放到一个报表展示 2、其 需展示的”所属账期“字段 数据 没有,根据 数据 的账期开始日和账期结束日判断,开始日取最早日期,结束日取最晚日期 所属账期:账期最早2020-05-20 00:00:00,账期最晚2020-07-10 00:00:00 所属账期就是202005/202006/202007或者202005~202007 3、其 某系字段例如“发票号”“凭证号”“ 1. 函数 功能 Splits the data into subsets, computes summary statistics for each, and returns the result in a convenient form. 将 数据 拆分为子集,为每个子集计算摘要统计信息,然后以方便的形式返回结果。 2. 函数 语法 aggregate (x, by, FUN, ..., simplify = TRUE, drop = TRUE) 3. 函数 参数 3.1 x an R object. 合并 数据 框有重复匹配时通常会返回所有的匹配,如何只保留匹配的第 一行 呢?其实这个需求也很常见。如芯片探针ID和基因ID往往多对一,要合并ID对应矩阵和芯片表达矩阵时。 数据 例子 data = data.frame(id = c(1,2,3,4,5), state = c(“KS”,“MN”,“AL”,“FL”,“CA”)) scores = data.frame(id = c(1,1,1,2,2,3,3,3), score = c(66,75,78,86,85,76,75,90)) requir ​ 我们先构造一组 数据 ,以便下面的演示 &amp;amp;amp;gt; data1&amp;amp;amp;lt;-data.frame( + namea=c(&amp;amp;quot;海波&amp;amp;quot;,&amp;amp;quot;立波&amp;amp;quot;,&amp;amp;quot;秀波&amp;amp;quot; 列表列表的创建列表是“递归型”的向量,即列表 的元素是可以再分的。以超市货品 数据 为例,可以用列表A存储每一种货物,列表A 的每一种元素可被视为一种货物。对于每一种货物,可以用列表B存储其各方面的属性,比如名称,价格,生产日期等信息。&gt; goods &lt;- list(name = "Cookie", price = 4, outdate = F) &gt; goods $name [1]... 2010-7-11补充:   发现了一篇讲编码的深入而全面的好文章http://www.cnblogs.com/KevinYang/archive/2010/06/18/1760597.html 向文件写入非字符类型 数据 当向文件 写入非字符类型的 数据 时,StreamWriter和BinaryWriter存在巨大差异。 StreamWriter是把各种类型的 数据 都转化成字符,然后把字符按照一定的格式编码出... 代码如下: GID <- data$GID[!duplicated(data$GID)] #data第一列去重# GO <- matrix(NA,nrow=length(GID),ncol=2) #提前算好合并成的 数据 是几行几列,length(GID)行,2列# for (i in 1:length(GID)) { a <- data[data$GID==GID[i],] GO[i,1] <- a[1,1] GO[i,2] &lt data2 <- pivot_wider(data, names_from = "gene", values_from = "num") data2[is.na(data2)] <- 0 #多个变量因子化、数字转化 data2[,2:4]<-lapply(data2[,2:4],as.numeric) myFUN<- function(x){s 1.聚合可以看作是对查询结果的汇总。 agg regation的强大在于它能嵌套并实现多级汇总。通常分为四类聚类:metric、bucket、pipeline、matrix 2.bucket和SQL的group by作用类似,常于metric结合使用,bucket是可以嵌套的;metric是对bucket 的一些统计信息;matrix在多字段上进行操作,从请求的文档的字段 提取信息,返回矩阵... 本文首发于“生信补给站”Tidyverse| 数据 列的分分合合,一分多,多合一TCGA 数据 挖掘可做很多分析,前期 数据 “清洗”费时费力但很需要。比如基因列为ID的需要转为常见的symbol,基因列为symbol|ID的就需要拆开了!excel分列可以解决,但是表达量 数据 较大,且excel容易产生“ 数据 变形”。一, 载入 数据 ,R包使用TCGA下载的 数据 ,使用以下几行几列, 作为示例library(tid... 在单细胞转录组学 数据 分析 ,我们经常需要对表达谱进行拟细胞或拟基因方向的分析,这些分析涉及到对表达矩阵的聚合汇总处理,同时还需要兼顾快速处理这些大型 数据 集。 本文分享两种方法,实现对存在同名的行和同名的列,且维度不等的多个 数据 表进行快速聚合合并... x=data.frame(name=c("张三","李四","王五","赵六"),sex=c("M","M","F","F"),age=c(20,40,22,30),height=c(166,170,150, 一是仅利用一些工具,对 数据 的特征进行查看;二是根据 数据 特征,感知 数据 价值,以决定是否需要对别的字段进行探索,或者决定如何加工这些字段以发挥 数据 分析的价值。字段的选取既需要技术手段的支撑,也需要 数据 分析者的经验和对解决问题的深入理解。01 数值类型在进行 数据 分析时,往往需要明确每个字段的 数据 类型。 数据 类型代表了 数据 的业务含义,分为3个类型:1. 区间型 数据 (Interval)数值型 数据 的取值都是数值...