主要内容

GroupFilter.

过滤器由集团

描述

例子

G= groupfilter (Tgroupvars方法中的计算对表或时间表中的数据进行过滤方法中指定的分组变量的唯一组合进行分组groupvars.的方法参数是对每个非分组变量进行操作的函数句柄。输出G是一个只包含行的表或时间表T满足条件方法.例如,g = groupfilter(t,'试验',@(x)numel(x)> 5)将数据分组到T通过试验,保留属于具有5次以上试验的组的行。

例子

G= groupfilter (Tgroupvarsgroupbins方法将数据按照groupbins在应用筛选器之前,将组水平连接到输出表。例如,G = groupfilter(T,'销售日期','年份',@(x) numel(x) > 5)将数据装箱发售日期,并保留bin中包含5个以上元素的行。

例子

G= groupfilter (___datavars为前两种语法指定要应用筛选器的表变量。例如,g = groupfilter(t,'试验',@(x)x == max(x),'height')保持一行T对应于每次试验的最大高度。

G= groupfilter (___“IncludedEdge”,LR指定包含的仓边为“左”'对'表示箱间隔的哪个末端是包容性的。您可以使用'includenteded'使用之前指定的语法groupbins

B= groupfilter (一个groupvars方法根据集合向量的唯一组合过滤数据groupvars什么时候一个是矢量或矩阵。groupvars可以是列向量、矩阵或列向量的单元格数组。输出B一个矩阵包含行吗一个满足定义的条件方法

例子

B= groupfilter (一个groupvarsgroupbins方法将数据按照groupbins

B= groupfilter (一个groupvarsgroupbins方法“IncludedEdge”,LR指定何时在每个容器中包含左边缘还是右边缘groupbins都是确定的。

例子

BBG) = groupfilter (一个___还返回与中未筛选的行对应的分组向量的行一个

例子

全部折叠

创建包含两个变量的表。

groupid = [1 1 1 2 2 3]';样本= [3 1 2 9 8 5]'T =表(GroupID,样本)
T =6×2表groupID样本_______ ______ 1 3 1 1 1 2 2 2 2 3 5

根据ID号进行分组,并且只返回与包含两个以上示例的组对应的行。

gnumel = groupfilter(t,“groupID”,@(x) numel(x) > 2)
Gnumel =3×2表groupID样本_______ ______ 1 3 1 1 1 2

仅返回组样本在0到6之间的行。

gvals = groupfilter(t,“groupID”,@(x) min(x) > 0 && max(x) < 6
gvals =4×2表groupID样本_______ ______ 1 3 1 1 1 2 3 5

创建一个表,其中包含两个变量,分别表示天数和温度。

[1 1 1 2 2 2]';Temp = [67 65 71 55 61 79 58 78]';T =表(daynum、临时)
T =8×2表Daynum temp ______ ____ 1 67 1 65 1 71 1 55 2 61 2 79 2 58 2 78

按日编号分组,并返回每天最大的两个温度。

g = groupfilter(t,“daynum”@ (x) ismember (x, maxk (x, 2)))
G =4×2表Daynum Temp __________ 1 67 1 71 2 79 2 78

创建一个日期表和相应的利润。

时间戳= DATETIME([2017 3 4; 2017 3 2; 2017 3 15; 2017 4 10;...2017 4 14;2017 4 30;2017 5 25;...2017年5 29;2017 5 21]);利润= [2032 3071 1185 2587 1998 2899 3112 909 2619]';T =表(时间戳,利润)
T =9×2表时间戳利润___________ ______ 04-Mar-2017 2032 02-Mar-2017 3071 15-Mar-2017 1185 10-APR-2017 2587 14-APR-2017 1998 30-APR-2017 2899 25-May-2017 3112 29-5月29日 -  5月25日 -  5月29日 -  5月29日 -  5月29日 -  5月29日 -  5月29日 -  5月29日 -  5月29日2017 909 21-5月21日 -  2017年2619

将日期按月分组,并只返回对应于当月最大利润的行。

gmax = groupfilter(t,'时间戳''月',@(x) x == max(x))
Gmax =3×3表month_timeStamps ___________ ______ ________________ 02-Mar-2017 3071 3 -2017 30- 4 -2017 2899 4 -2017 25- 5- 2017 3112 5- 2017

返回月平均利润大于2300美元的行。

Gavg = groupfilter (T)'时间戳''月',@(x)均值(x)> 2300)
Gavg =3×3表month_timeStamps ___________ ______ ________________ 10-Apr-2017 2587四月-2017 14-四月-2017 1998四月-2017 30-四月-2017 2899四月-2017

创建一个包含三个变量的表。

groupid = [1 2 3 1 2 3 11 2 3]';高度= [62 61 59 66 70 72 57 67 71]';性别= [“M”“F”“F”“M”“M”“F”“M”“M”“M”]'T =表(Groupid,Height,性别)
T =9×3表groupID身高性别_______ ______ ______ 1 62 "M" 2 61 "F" 3 59 "F" 1 66 "M" 2 70 "M" 3 72 "F" 1 57 "M" 2 67 "M" 3 71 "M"

根据ID号进行分组,并返回组成员的最小高度都为60的行。

G1 = groupfilter (T)“groupID”,@(x) min(x) >= 60,'高度'
G1 =3×3表Groupid Height性别_______ ______ ______ 2 61“F”2 70“M”2 67“M”

返回组成员全部为男性的行。

G2 = groupfilter (T)“groupID”@ (x)所有(x = =“M”),“性别”
G2 =3×3表Groupid Height性别_______ ______ ______ 1 62“M”1 66“M”1 57“M”

通过ID号和性别组,并返回包含每个组中的男性和女性的最大高度的行。

G3 = groupfilter (T) {“groupID”“性别”},@(x) x == max(x))
G3 =5×3表groupID高度性别  _______ ______ ______ 61“F”66“M”70“M”71“M”72“F”3

创建一个日期向量和相应利润值向量。

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]';

按星期的天数分组,并计算每组的最大利润。展示最大利润及其对应的群组。

[maxDailyProfit, dayOfWeek] = groupfilter(利润,时间戳,“dayname”,@(x) x == max(x))
maxDailyProfit =5×13071 1185 2899 3112 2619
dayOfWeek =5x1分类星期四,星期三,星期五,星期六,星期二

输入参数

全部折叠

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

输入数组,指定为向量或矩阵。

分组变量或向量,指定为以下选项之一:

  • 对数组输入,groupvars可以是行数相同的列向量一个或排列在矩阵或单元格数组中的一组列向量。

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

    选项 描述 例子
    变量名

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

    “Var1”

    “Var1”

    变量名向量

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

    {'var1''var2'}

    [“var1”“var2”]

    标量或可变指数的矢量

    表变量索引的标量或向量

    1

    [1 3 5]

    逻辑向量

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

    (真的假的真的)

    功能手柄

    函数句柄,将表变量作为输入返回逻辑标量

    @Isnumeric.

    vartype下标

    由此生成的表格下标vartype函数

    vartype(数字)

例子:groupfilter (T“Var3”方法)

计算方法,指定为函数句柄。

方法定义用于从每个组中过滤掉成员的函数。该函数必须返回具有相同行数量的逻辑标量或逻辑列向量作为指示要选择的组成员的输入数据。如果函数返回逻辑标量,则会过滤掉组的所有成员(当值为时))或none被过滤掉(当值为真正的).如果函数返回逻辑向量,则在对应元素时过滤掉组的成员.当相应的元素被保存时,成员被保留真正的

要定义函数句柄,请使用表单的语法@ myfunc (inputargs)在哪里myfunc依赖于取决于inputargs.例如,@(x)均值(x)指定变量x的输入参数意思函数。然后,可以定义用于筛选的条件,例如@(x) mean(x) >,它返回一个逻辑标量。该计算将保留组均值大于10的行。有关更多信息,请参见创建功能句柄匿名函数

GroupFilter.一次将方法应用于多个非分组变量时,该方法必须返回真正的为每个变量,以保持行。

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

  • “没有”,表示没有装箱

  • 容器边的列表,指定为数字向量或datetime向量为datetime分组变量

  • 指定为整数标量的一组容器

  • 指定为类型标量的时间持续时间持续时间日历,表示仓宽(用于datetime持续时间分组变量)

  • 列出每个分组变量的分类规则的单元格数组

  • 时间箱datetime持续时间只分组变量,指定为以下字符向量之一:

    价值 描述 数据类型
    “第二”

    每个垃圾箱都是1秒钟。

    datetime持续时间
    “一分钟”

    每个垃圾箱都是1分钟。

    datetime持续时间
    “小时”

    每个垃圾桶是1小时。

    datetime持续时间
    '天'

    每个垃圾箱都是1个日历日。此值帐户占夏令时的班次。

    datetime持续时间
    '星期' 每个垃圾箱都是1个日历周。 datetime只要
    '月' 每个垃圾箱是1个日历月。 datetime只要
    “季” 每个垃圾箱都是1个日历季度。 datetime只要
    “年”

    每个垃圾桶是1个日历年。该值用于闰日。

    datetime持续时间
    '十年' 每个垃圾箱都是1年(10个日历年)。 datetime只要
    '世纪' 每个垃圾桶是1个世纪(100个日历年)。 datetime只要
    “secondofminute”

    垃圾箱是0到59的秒。

    datetime只要
    “minuteofhour”

    箱子距离0到59分钟。

    datetime只要
    “hourofday”

    垃圾箱的时间从0到23。

    datetime只要
    “dayofweek”

    垃圾箱是从1到7日起的日子。本周的第一天是星期天。

    datetime只要
    “dayname” Bins是完整的日名,例如“星期天” datetime只要
    'DayofMonth' 垃圾桶是1到31天。 datetime只要
    'Dayofyear' 垃圾箱是从1到366的日子。 datetime只要
    'feewofomon' 垃圾箱从1到6周几周。 datetime只要
    “weekofyear” 垃圾箱从1到54个星期。 datetime只要
    “monthname” bin是完整的月份名称,例如“1月” datetime只要
    “monthofyear”

    垃圾箱是1到12个月。

    datetime只要
    'seturanfyear' 垃圾桶是1到4的四分之一。 datetime只要

当指定多个分组变量时,您可以提供应用于所有分组变量的单一分组规则,或者为每个分组变量提供包含分组方法的单元格数组,例如{'none',[0 2 4 inf]}

包括仓边,指定为“左”'对',指示bin间隔的哪个端点是包含的。

此参数只能在groupbins,该值对所有分组变量或向量应用所有装箱方案。

表变量要操作,指定为此表中的选项之一。datavars表示应用过滤方法的输入表或时间表的哪些变量。未指定的表中的其他变量datavars通过到输出而不被操作。GroupFilter.将筛选方法应用于指定的变量,并使用结果从所有变量中删除行。当datavars没有指定,GroupFilter.在每个非组间变量上运行。

选项 描述 例子
变量名

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

“Var1”

“Var1”

变量名向量

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

{'var1''var2'}

[“var1”“var2”]

标量或可变指数的矢量

表变量索引的标量或向量

1

[1 3 5]

逻辑向量

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

(真的假的真的)

功能手柄

函数句柄,将表变量作为输入返回逻辑标量

@Isnumeric.

vartype下标

由此生成的表格下标vartype函数

vartype(数字)

例子:groupfilter (T groupvars方法,(“Var1”“Var2”“Var4”])

输出参数

全部折叠

输出表,作为包含未过滤数据行的表或时间表返回。

输出阵列,作为包含未过滤数据的向量或矩阵返回。

分组阵列输入数据的向量,作为列向量或列向量的小区向量返回。BG包含与未过滤行相对应的分组向量的行一个

扩展功能

介绍了R2019b