主要内容

groupfilter

过滤器由集团

描述

例子

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

例子

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

例子

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

G= groupfilter (___“IncludedEdge”,LR指定包含的仓边为“左”“对”指示bin间隔的哪一端是包含的。您可以使用“IncludeEdge”使用之前指定的语法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

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

timeStamps = 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表timeStamps profit ___________ ______ 04- march -2017 2032 02- march -2017 3071 15- march -2017 1185 10- april -2017 2587 14- april -2017 1998 30- april -2017 2899 25-May-2017 3112 29-May-2017 909 21-May-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) mean(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 1 2 3]';Height = [62 61 59 66 70 72 57 67 71]';性别= [“M”“F”“F”“M”“M”“F”“M”“M”“M”]“;T =表(groupID,身高,性别)
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高度性别  _______ ______ ______ 61“F”70“M”67“M”

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

G2 = groupfilter (T)“groupID”@ (x)所有(x = =“M”),“性别”
G2 =3×3表groupID高度性别  _______ ______ ______ 62“M”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 =5 x1分类星期四,星期三,星期五,星期六,星期二

输入参数

全部折叠

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

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

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

  • 对数组输入,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分组变量

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

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

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

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

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

    每个箱子是1秒。

    datetime持续时间
    “一分钟”

    每个垃圾桶为1分钟。

    datetime持续时间
    “小时”

    每个垃圾桶是1小时。

    datetime持续时间
    “天”

    每个垃圾箱是1个日历天。这个值说明了夏令时转换。

    datetime持续时间
    “周” 每个垃圾桶是一个日历周。 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只有
    “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]}

包括仓边,指定为“左”“对”,指示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