主要内容

groupsummary

分组汇总计算

描述

例子

G= groupsummary (Tgroupvars对于表或时间表中的数据,返回一个包含计算组和每个组中的元素数量的表T.组包含分组变量的唯一组合groupvars.例如,G = groupsummary(T,'性别')返回男性元素和的个数变量中的元素性别

例子

G= groupsummary (Tgroupvars方法中指定的计算方法.例如,G = groupsummary(T,'性别','中位数')返回中所有非分组变量的中值T对于两性,除了每组元素的数量。

例子

G= groupsummary (Tgroupvars方法datavars指定要对其应用计算的变量。

G= groupsummary (Tgroupvarsgroupbins指定如何将数据装入groupvars.例如,G = groupsummary(T,'SaleDate','year')给出所有销售的组计数T每年根据分组变量SaleDate

G= groupsummary (Tgroupvarsgroupbins方法对数据进行分类groupbins中指定的计算方法

例子

G= groupsummary (Tgroupvarsgroupbins方法datavars对数据进行分类groupbins并指定要将计算应用于的变量。

例子

G= groupsummary (___名称,值为任何前面的语法使用一个或多个名称-值对指定其他分组属性。例如,G = groupsummary(T,'Category1','IncludeMissingGroups',false)不包括失踪组分类数据由<定义>

B= groupsummary (一个groupvars方法中分组向量的唯一组合返回计算结果groupvars一个是一个向量或矩阵。groupvars可以是列向量、矩阵或列向量的单元格数组。

例子

B= groupsummary (一个groupvarsgroupbins方法对数据进行分类groupbins

例子

B= groupsummary (___名称,值对于前面的数组语法,使用一个或多个名称-值对指定其他分组属性。

BBG= groupsummary(一个___还返回每个分组向量的组。

例子

BBG公元前= 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

输入参数

全部折叠

输入数据,指定为表格或时间表。

输入数组,指定为向量、矩阵或向量或矩阵的单元格数组。

的函数句柄时方法它需要多个输入参数,即输入数据一个必须是由向量或矩阵组成的单元格数组。在每次按组调用函数时,输入参数是单元格数组中每个元素的对应列。例如:

  • 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可以是行数相同的列向量一个或排列在矩阵或单元数组中的一组列向量。

  • 对于表格或时间表输入,groupvars指示使用哪些变量来计算数据中的组。您可以使用此表中的任何选项指定分组变量。

    选项 描述 例子
    标量变量名

    指定单个表变量名的字符向量或标量字符串。

    “Var1”

    “Var1”

    变量名向量

    由字符向量或字符串数组组成的单元格数组,其中每个元素都是表变量名。

    {“Var1”“Var2”}

    [" Var1”“Var2”)

    变量指标的标量或向量

    表变量索引的标量或向量。

    1

    [1 3 5]

    逻辑标量或向量

    一种逻辑向量,其每个元素对应于一个表变量,其中真正的包括相应的变量和不包括它。

    [真真假假]

    函数处理

    接受表变量作为输入并返回逻辑标量的函数句柄。

    @isnumeric

    vartype下标

    类生成的表下标vartype函数。

    vartype(数字)

例子:groupsummary (T,“Var3”)

计算方法,指定为下列之一:

  • “和”——总和

  • “的意思是”——意思是

  • “中值”——中值

  • “模式”——模式

  • “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指示要将方法应用于输入表或时间表的哪些变量。未指定的其他变量datavars不被操作,也不传递到输出。当datavars未指定,groupsummary对每个非分组变量进行操作。

选项 描述 例子
变量名

指定单个表变量名的字符向量或标量字符串

“Var1”

“Var1”

变量名向量

由字符向量或字符串数组组成的单元格数组,其中每个元素都是表变量名

{“Var1”“Var2”}

[" Var1”“Var2”)

变量指标的标量或向量

表变量索引的标量或向量

1

[1 3 5]

逻辑向量

一种逻辑向量,其每个元素对应于一个表变量,其中真正的包括相应的变量和不包括它

[真真假假]

函数处理

接受表变量作为输入并返回逻辑标量的函数句柄

@isnumeric

vartype下标

类生成的表下标vartype函数

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"])

分箱方案,指定为以下选项之一:

  • “没有”,表示没有垃圾箱

  • 二进制边的列表,指定为数值向量或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,…,的家

例子:G = groupsummary(T,groupvars,groupbins,'IncludedEdge','right')

包含的bin边,指定为任意一个“左”“对”,表示包含bin间隔的哪一端。

此名称-值对只能在以下情况下指定groupbins指定后,该值将应用于所有分组变量或向量的所有分组方案。

缺失组指示器,指定为真正的.当参数值为时真正的groupsummary显示由缺失值组成的组,例如.当参数值为时groupsummary不显示缺失的组。

数据类型:逻辑

空组指示器,指定为真正的.当参数值为时groupsummary不显示元素为零的组。当参数值为时真正的groupsummary显示空组。

数据类型:逻辑

输出参数

全部折叠

输出表,作为包含每个组的指定计算的表返回。

输出数组,作为包含组计算的向量或矩阵返回。当指定多个方法时,groupsummary按照列出的顺序水平地连接计算。

数组输入数据的组,作为列向量或单元格数组返回,每个列向量对应于一个分组向量。

当你提供多个分组向量时,BG包含相等长度的列向量的单元格数组。组信息可以通过在中的所有向量上按行查看元素来找到BG.每个组映射到输出数组的相应行B

数组输入数据的组计数,作为包含每个组中元素数量的列向量返回。的长度公元前是否与返回的组列向量的长度相同BG

提示

  • 当打许多电话给groupsummary,考虑将分组变量转换为类型分类逻辑在可能的情况下提高性能。例如,如果您有一个类型为的分组变量字符(如性别与元素“男”而且“女”),可使用此命令将其转换为类别值分类(性别)

扩展功能

在R2018a中引入