R语言 如何对Data.table的多列进行聚合
在这篇文章中,我们将讨论如何在R编程语言的Data.table中聚合多列。
Data.table包含的元素可能是重复的或唯一的。因此,变量被分为不同的类别,这取决于它们可以被隔离的集合。列的值可以被求和,这样列就包含了变量频率计数的求和。
方法1:使用list()方法
标准的数据表索引方法可以用来分离和聚集数据框架中包含的数据。”by “属性被用来根据list()方法中提供的特定列名来划分数据。可以添加一个新的变量,其中包含使用sum()方法获得的值的总和,该方法包含要进行求和的列。
语法 。
df[ , new-col-name:=sum(reqd-col-name), by = list(grouping columns)]
例子 。
输出
方法 2 : 使用 lapply( )
data.table库可以被安装并加载到工作空间。然后可以在这个 data.table 对象上应用 lapply() 方法,用一个组来聚合多个列。lapply()方法被用来返回一个与输入列表相同长度的对象。返回的每个元素都是应用函数FUN的结果。
语法。
lapply(obj, FUN, …)
参数 :
- obj – 一个向量(原子或列表)或一个表达式对象。
- FUN – 要在元素上应用的函数。
.SD属性用于计算更大的变量列表的汇总统计。总和函数被应用为计算分类属于每个组变量的元素的总和的函数。在执行聚合时,’by’属性等同于SQL中的’group by’。
语法 。
lapply ( .SD , sum )
例子 。
输出
方法3:使用聚合方法
R中的aggregate()函数用于为数据框或data.table中的一个或多个变量分别产生汇总统计。
语法。
aggregate(sum_var ~ group_var, data = df, FUN = sum)
参数:
- sum_var – 要计算总和的列
- group_var – 要对数据进行分组的列
- data – 要提取的数据框
- FUN – 要应用的函数
如果被分组的变量是一个列的组合,cbind()方法被用来组合要检索的列。要应用的FUN等同于sum,其中每一列对特定分类组的求和被返回。
例子 。
输出