groupsummary
分组汇总计算
语法
描述
例子
摘要统计信息
计算表变量的汇总统计信息。
创建表T
其中包含了五个人的信息。
性别= [“男性”;“女性”;“女性”;“男性”;“男性”];年龄= [38;43;38;40;49];身高= [71;69;64;67;64];Weight = [176;163;131;133;119];T =表(性别,年龄,身高,体重)
T =5×4表性别年龄身高体重________ ___ ______ ______“男”38 71 176“女”43 69 163“女”38 64 131“男”40 67 133“男”49 64 119
通过指定计算雄性和雌性的数量性别
作为分组变量。
G = groupsummary(T,“性别”)
G =2×2表性别GroupCount ________ __________ " 女“2”男”3
分别计算女性和男性的平均年龄、身高和体重。
G = groupsummary(T,“性别”,“的意思是”)
G =2×5表性别GroupCount mean_Age mean_Height mean_Weight ________ __________ ________ ___________ ___________ " 女性男性“40.5 - 66.5 147 3 42.333 67.333 142.67
仍然按性别分组,只计算身高的中位数。
G = groupsummary(T,“性别”,“中值”,“高度”)
G =2×3表性别GroupCount median_Height ________ __________ _____________ " 女“2 66.5”男“3 67
多分组变量
使用两个分组变量对表数据进行分组。
创建表T
其中包含了五个人的信息。
性别= [“男性”;“女性”;“男性”;“女性”;“男性”];吸烟者=逻辑([1;0;1;0;1]);Weight = [176;163;131;133;119];T =表(性别,吸烟,体重)
T =5×3表性别吸烟体重________ ______ ______“男”真176“女”假163“男”真131“女”假133“男”真119
计算平均体重,按性别和吸烟状况分组。默认情况下,性别和吸烟状态的两个组合不会在输出中表示,因为它们是空组。
G = groupsummary(T,{“性别”,“抽烟”},“的意思是”,“重量”)
G =2×4表性别吸烟者GroupCount mean_Weight ________ ______ __________ ___________ " 女“错误148”男“真正的142
设置“IncludeEmptyGroups”
参数值为真正的
为了看到所有的组组合,包括空的组。
G = groupsummary(T,{“性别”,“抽烟”},“的意思是”,“重量”,“IncludeEmptyGroups”,真正的)
G =4×4表性别吸烟者GroupCount mean_Weight ________ ______ __________ ___________“女”假2 148“女”真0 NaN“男”假0 NaN“男”真3 142
指定组箱
按照指定的箱子对数据进行分组。
创建一个时间表,其中包含一个月内几天的销售信息。
时间戳=日期时间([2017 3 4;2017 3 2;2017 3 15;2017 3 10;...2017 3 14;2017 3 31;2017 3 25;...2017 3 29;2017 3 21;2017 3 18]);利润= [2032 3071 1185 2587 1998 2899 3112 909 2619 3085]';TotalItemsSold = [14 13 8 5 10 16 8 6 7 11]';TT =时间表(时间戳,利润,销售总额)
TT =10×2时间表时间戳利润总额销售项目___________ ______ ______________ 2017年3月04日- 2032 14 2017年3月02日- 3071 13 2017年3月15日- 1185 8 2017年3月10日- 2587 5 2017年3月14日- 1998年10 2017年3月31日- 2899 16 2017年3月25日- 3112 8 2017年3月29日- 909 6 2017年3月21日- 2619 7 2017年3月18日- 3085 11
计算按销售总商品分组的平均利润,将分组分成商品编号的区间。
格式shorteG = groupsummary(TT,“TotalItemsSold”,[0 4 8 12 16],“的意思是”,“利润”)
G =3×3表disc_TotalItemsSold GroupCount mean_Profit ___________________ __________ ___________ [ 4、8)3.0000 2.0383 e + e + 00 03[8、12)4.0000 e + 00 2.3450 e + 03(12、16)3.0000 e + 00 2.6673 e + 03
计算一周中按天分组的平均利润。
G = groupsummary(TT,“时间戳”,“dayname”,“的意思是”,“利润”)
G =5×3表dayname_TimeStamps GroupCount mean_Profit __________________ __________ ___________ Tuesday 2.0000e+00 2.3085e+03 Wednesday 2.0000e+00 1.0470e+03 Thursday 1.0000e+00 3.0710e+03 Friday 2.0000e+00 2.7430e+03 Saturday 3.0000e+00 2.7430e+03
向量数据分组操作
创建日期向量和相应利润值向量。
timeStamps = datetime([2017 3 4;2017 3 2;2017 3 15;2017 3 10;...2017 3 14;2017 3 31;2017 3 25;...2017 3 29;2017 3 21;2017 3 18]);利润= [2032 3071 1185 2587 1998 2899 3112 909 2619 3085]';
计算一周中每一天的平均利润。显示方法、组名和每个组中的成员数量。
格式shorte[meanDailyProfit,dayOfWeek,dailyCounts] = groupsummary(利润,时间戳,“dayname”,“的意思是”)
meanDailyProfit =5×12.3085e+03 1.0470e+03 3.0710e+03 2.7430e+03 2.7430e+03
dayOfWeek =5 x1分类星期二星期三星期四星期五星期六
dailyCounts =5×12 2 1 2 3
向量输入的多个分组向量
根据性别和吸烟状况计算四组的平均体重。
将患者信息存储为三个不同类型的向量。
性别= [“男性”;“女性”;“男性”;“女性”;“男性”];吸烟者=逻辑([1;0;1;0;1]);Weight = [176;163;131;133;119];
按性别和吸烟状况分组,计算平均权重。B
包含每组的平均值(南
对于空组)。BG
是一个单元格数组,其中包含两个向量,当您逐行查看组的元素时,两个向量用于描述组。例如,第一行BG {1}
说第一组病人是女性,而第一排BG {2}
说他们不吸烟。最后,公元前
中对应的组,包含每个组中的成员数BG
.
[B,BG,BC] = groupsummary(体重,{性别,吸烟者},“的意思是”,“IncludeEmptyGroups”,真正的);B
B =4×1148南南142
BG {1}
ans =4 x1字符串"女" "女" "男" "男"
BG {2}
ans =4x1逻辑阵列0 1 1
公元前
公元前=4×12 0 0 3
多输入函数句柄
加载包含患者信息的数据,并创建一个表,描述每个患者的性别、收缩压和舒张压、身高和体重。
负载病人T =表(性别,收缩压,舒张压,身高,体重)
T =100×5表性别收缩压舒张压高的重量 __________ ________ _________ ______ ______ {' 男性}124 93 71 176{‘男性’}163{‘女性’}125 109 77 69 83 64 131{‘女性’}133{‘女性’}122 117 75 67 80 64 119{‘女性’}142{‘女性’}130 121 70 68 88 64 142{‘男性’}180{‘男性’}115 115 82 68 78 68 183{‘女性’}132{‘女性’}114 118 86 66 77 68 128{‘女性’}137{‘男性’}127 115 68 66 74 71 174{‘男性’}202{‘女性’}114 130 95 72 79 65 129{‘男性’}⋮130 92 71 181
按性别分组,计算患者身高和体重之间的相关性以及收缩压和舒张压之间的相关性。使用xcov
函数作为计算相关性的方法。的前两个输入参数xcov
描述要关联的数据,第三个参数描述滞后大小,第四个参数描述归一化的类型。对于每组计算,x
而且y
传入的参数xcov
由两个单元格元素的变量成对指定(“高度”、“收缩”)
而且(“重量”、“舒张期”)
.
G = groupsummary(T,“性别”@ (x, y) xcov (x, y, 0,多项式系数的), {[“高度”,“收缩”]、[“重量”,“舒张期”]})
G =2×4表性别GroupCount fun1_Height_Weight fun1_Systolic_Diastolic __________ __________ __________________ _______________________ {' 女性的53 0.071278 - 0.48731{‘男性’}}47 0.047571 - 0.50254
或者,如果数据是向量或矩阵形式,而不是表形式,则可以提供要关联的数据作为的第一个输入参数groupsummary
.
[G,GR,GC] = groupsummary({[身高,收缩压],[体重,舒张压]},性别,@(x,y)xcov(x,y,0,多项式系数的))
G =2×20.0713 0.4873 0.0476 0.5025
GR =2 x1细胞{'女'}{'男'}
GC =2×153个47
输入参数
T
- - - - - -输入数据
表格|时间表
输入数据,指定为表格或时间表。
一个
- - - - - -输入数组
向量|矩阵|单元阵列
输入数组,指定为向量、矩阵或向量或矩阵的单元格数组。
的函数句柄时方法
它需要多个输入参数,即输入数据一个
必须是由向量或矩阵组成的单元格数组。在每次按组调用函数时,输入参数是单元格数组中每个元素的对应列。例如:
groupsummary({x1, y1},groupvars,@(x,y) myFun(x,y))
计算myFun (x1, y1)
对于每一组。groupsummary ({(x1, x2)), (y1 y2)}, groupvars, @ (x, y) myFun (x, y))
第一次计算myFun (x1, y1)
每一组,然后计算myFun (x2, y2)
对于每一组。
groupvars
- - - - - -将变量或向量分组
标量|向量|矩阵|单元阵列|函数处理|表格vartype
下标
对变量或向量进行分组,指定为以下选项之一:
对于数组输入,
groupvars
可以是行数相同的列向量一个
或排列在矩阵或单元数组中的一组列向量。对于表格或时间表输入,
groupvars
指示使用哪些变量来计算数据中的组。您可以使用此表中的任何选项指定分组变量。选项 描述 例子 标量变量名 指定单个表变量名的字符向量或标量字符串。
“Var1”
“Var1”
变量名向量 由字符向量或字符串数组组成的单元格数组,其中每个元素都是表变量名。
{“Var1”“Var2”}
[" Var1”“Var2”)
变量指标的标量或向量 表变量索引的标量或向量。
1
[1 3 5]
逻辑标量或向量 一种逻辑向量,其每个元素对应于一个表变量,其中
真正的
包括相应的变量和假
不包括它。[真真假假]
函数处理 接受表变量作为输入并返回逻辑标量的函数句柄。
@isnumeric
vartype
下标类生成的表下标
vartype
函数。vartype(数字)
例子:groupsummary (T,“Var3”)
方法
- - - - - -计算方法
“和”
|“的意思是”
|“中值”
|“模式”
|“var”
|“性病”
|“最小值”
|“马克斯”
|“范围”
|“nummissing”
|“nnz”
|“所有”
|函数处理|单元阵列
计算方法,指定为下列之一:
“和”
——总和“的意思是”
——意思是“中值”
——中值“模式”
——模式“var”
——方差“性病”
-标准差“最小值”
——最低“马克斯”
——最大“范围”
-最大值减去最小值“nummissing”
-缺失元素的数量“nnz”
-非零和非南
元素“所有”
-之前列出的所有计算
你也可以指定方法
作为一个函数句柄,每个组返回一个实体,其第一个维度的长度为1。对于表输入数据,函数分别对每个表变量进行操作。
当输入数据是一个表时T
你指定一个函数句柄方法
它需要多个输入参数,您必须指定datavars
.的datavars
参数必须是单元格数组,其元素指示用于方法中的每个输入的表变量。在每次按组调用函数时,输入参数都是单元格数组元素的对应表变量。例如:
groupsummary (T groupvars @ (x, y) myFun (x, y),{“x1”、“日元”})
计算myFun (T.x1 T.y1)
对于每一组。groupsummary (T groupvars @ (x, y) myFun (x, y),{(“x1”“x2”)(“日元”“y2)})
第一次计算myfun (T.x1 T.y1)
每一组,然后计算myfun (T.x2 T.y2)
对于每一组。
的函数句柄时,输入数据为向量或矩阵形式方法
它需要多个输入参数,即输入数据一个
必须是由向量或矩阵组成的单元格数组。在每次函数调用中,输入参数都是单元格数组中每个元素的对应列。例如:
groupvars groupsummary ({(x1, y1)}, @ (x, y) myFun (x, y))
计算myFun (x1, y1)
对于每一组。groupsummary ({(x1, x2)), (y1 y2)}, groupvars, @ (x, y) myFun (x, y))
第一次计算myFun (x1, y1)
每一组,然后计算myFun (x2, y2)
对于每一组。
若要一次指定多个计算,请在单元格数组中列出选项,例如{“的意思是”,“中等”}
或{myFun1, myFun2}
.
南
在使用这里描述的方法名时,输入数据中的值将被自动省略,除了“nummissing”
.包括南
值时,考虑为方法使用函数句柄,例如@sum
而不是“和”
.
数据类型:字符
|字符串
|细胞
|function_handle
datavars
- - - - - -要操作的表变量
标量|向量|单元阵列|函数处理|表格vartype
下标
要操作的表变量,指定为此表中的选项之一。datavars
指示要将方法应用于输入表或时间表的哪些变量。未指定的其他变量datavars
不被操作,也不传递到输出。当datavars
未指定,groupsummary
对每个非分组变量进行操作。
选项 | 描述 | 例子 |
---|---|---|
变量名 | 指定单个表变量名的字符向量或标量字符串 |
|
变量名向量 | 由字符向量或字符串数组组成的单元格数组,其中每个元素都是表变量名 |
|
变量指标的标量或向量 | 表变量索引的标量或向量 |
|
逻辑向量 | 一种逻辑向量,其每个元素对应于一个表变量,其中 |
|
函数处理 | 接受表变量作为输入并返回逻辑标量的函数句柄 |
|
vartype 下标 |
类生成的表下标 |
|
当输入数据是一个表时T
你指定一个函数句柄方法
它需要多个输入参数,您必须指定datavars
.的datavars
参数必须是单元格数组,其元素为表中的任何选项。单元格数组元素指示用于方法中的每个输入的表变量。在每次按组调用函数时,输入参数都是单元格数组元素的对应表变量。例如:
groupsummary (T groupvars @ (x, y) myFun (x, y),{“x1”、“日元”})
计算myFun (T.x1 T.y1)
对于每一组。groupsummary (T groupvars @ (x, y) myFun (x, y),{(“x1”“x2”)(“日元”“y2)})
第一次计算myfun (T.x1 T.y1)
每一组,然后计算myfun (T.x2 T.y2)
对于每一组。
例子:groupsummary(T,groupvars,method,["Var1" "Var2" "Var4"])
groupbins
- - - - - -装箱计划
“没有”
(默认)|向量|标量|单元阵列
分箱方案,指定为以下选项之一:
“没有”
,表示没有垃圾箱二进制边的列表,指定为数值向量或
datetime
向量为datetime
将变量或向量分组作为整数标量指定的箱的数量
一种时间持续时间,指定为类型的标量
持续时间
或calendarDuration
指示bin宽度(用于datetime
或持续时间
仅分组变量或向量)一个时间箱
datetime
而且持续时间
仅对变量或向量进行分组,指定为以下字符向量之一:价值 描述 数据类型 “第二”
每个箱子是1秒。
datetime
而且持续时间
“一分钟”
每个箱子是1分钟。
datetime
而且持续时间
“小时”
每个箱子是1小时。
datetime
而且持续时间
“天”
每个箱子是一个日历日。该值表示日光节约时间的变化。
datetime
而且持续时间
“周”
每个箱子是一个日历周。 datetime
只有“月”
每个箱子是一个日历月。 datetime
只有“季”
每个箱子是一个日历季度。 datetime
只有“年”
每个箱子是一个日历年。这个值表示闰日。
datetime
而且持续时间
“十年”
每个箱子是10年(10个日历年)。 datetime
只有“世纪”
每个箱子代表一个世纪(100日历年)。 datetime
只有“secondofminute”
箱子从0秒到59秒。
datetime
只有“minuteofhour”
箱子是0到59的分钟。
datetime
只有“hourofday”
箱子的单位是从0到23。
datetime
只有“dayofweek”
箱子是从1号到7号。一周的第一天是星期天。
datetime
只有“dayname”
箱子是完整的日期名称,例如 “星期天”
.datetime
只有“dayofmonth”
箱子是从1到31的天。 datetime
只有“dayofyear”
箱是从1到366。 datetime
只有“weekofmonth”
箱子是从1到6的星期。 datetime
只有“weekofyear”
箱子是从1到54的周。 datetime
只有“monthname”
bin是完整的月份名称,例如 “1月”
.datetime
只有“monthofyear”
箱子是从1到12的月份。
datetime
只有“quarterofyear”
箱子是从1到4的四分之一。 datetime
只有为每个分组变量或向量列出分箱规则的单元格数组
当指定多个分组变量时,可以提供应用于所有分组变量的单个分组规则,或者为每个分组变量提供包含分组方法的单元格数组,例如{'none',[0 2 4 Inf]}
.
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:G = groupsummary(T,groupvars,groupbins,'IncludedEdge','right')
IncludedEdge
- - - - - -包含箱边
“左”
(默认)|“对”
包含的bin边,指定为任意一个“左”
或“对”
,表示包含bin间隔的哪一端。
此名称-值对只能在以下情况下指定groupbins
指定后,该值将应用于所有分组变量或向量的所有分组方案。
IncludeMissingGroups
- - - - - -缺失群体指标
真正的
(默认)|假
缺失组指示器,指定为真正的
或假
.当参数值为时真正的
,groupsummary
显示由缺失值组成的组,例如南
.当参数值为时假
,groupsummary
不显示缺失的组。
数据类型:逻辑
IncludeEmptyGroups
- - - - - -空组指示器
假
(默认)|真正的
空组指示器,指定为真正的
或假
.当参数值为时假
,groupsummary
不显示元素为零的组。当参数值为时真正的
,groupsummary
显示空组。
数据类型:逻辑
输出参数
G
-输出表
表格
输出表,作为包含每个组的指定计算的表返回。
B
-输出数组
向量|矩阵
输出数组,作为包含组计算的向量或矩阵返回。当指定多个方法时,groupsummary
按照列出的顺序水平地连接计算。
BG
——组
列向量|单元格列向量数组
数组输入数据的组,作为列向量或单元格数组返回,每个列向量对应于一个分组向量。
当你提供多个分组向量时,BG
包含相等长度的列向量的单元格数组。组信息可以通过在中的所有向量上按行查看元素来找到BG
.每个组映射到输出数组的相应行B
.
公元前
-小组计数
列向量
数组输入数据的组计数,作为包含每个组中元素数量的列向量返回。的长度公元前
是否与返回的组列向量的长度相同BG
.
提示
当打许多电话给
groupsummary
,考虑将分组变量转换为类型分类
或逻辑
在可能的情况下提高性能。例如,如果您有一个类型为的分组变量字符
(如性别
与元素“男”
而且“女”
),可使用此命令将其转换为类别值分类(性别)
.
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
使用注意事项和限制:
如果
一个
而且groupvars
都是高矩阵,那么它们必须有相同的行数。如果第一个输入是一个高矩阵,那么
groupvars
可以是包含高分组向量的单元格数组。的
groupvars
而且datavars
参数不支持函数句柄。金宝app的
IncludeEmptyGroups
不支持名称-值参数。金宝app的
“中值”
而且“模式”
方法不受支持。金宝app对于高datetime数组,使用
“性病”
方法不支持。金宝app如果
方法
参数是函数句柄,则它必须是的有效输入splitapply
在高阵列上操作。如果函数句柄接受多个输入,则第一个输入为groupsummary
这张桌子一定很高。与内存中的组相比,组的顺序可能不同
groupsummary
计算。当按离散的datetime数组分组时,分类组名称与内存中的不同
groupsummary
计算。
有关更多信息,请参见高大的数组.
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
不支持稀疏输入。金宝app
不支持datetime或duration数据金宝app的分箱方案。
不支持内容大小可变的异构单元格数组的输入数据。金宝app
输入表包含
N
不支持-维数组。金宝app不支持包含字符向量的单元格数组或单元格数组的单元格数组的输入数据。金宝app
计算方法必须是常数。
当第一个输入参数是一个表时,分组变量必须是常量。
数据变量必须为常数。
指定为字符向量或字符串的分箱方案必须为常量。
名称-值参数必须为常量。
计算方法不能返回稀疏或
N
维的结果。如果组变量的数量在运行时可以改变,则第二次输出
BG
是单元格数组。
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
在R2018a中引入R2022a:在较小的团队规模下提高性能
的groupsummary
函数显示了改进的性能,特别是当每组中的数据计数较小时。
R2022a:接受没有标准缺失值的数据类型
R2022a的行为发生了变化
的nummissing
而且nnz
方法对于没有标准缺失值默认定义的输入数据类型不再出错。
依赖于MATLAB为这些输入抛出的错误的代码,例如试一试
/抓
块,可能不再捕获这些错误。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。