主要内容

grouptransform

变换的组

描述

例子

G=组变换(T群变方法使用中的计算转换表或时间表中的数据方法,按中指定的变量分组群变. 输出G是一个表或时间表,其中包含转换后的数据,而不是来自的非分组变量T.例如,G = grouptransform (T,“性别”,“规范”)对数据进行规范化T用2-规范来区分性别。

例子

G=组变换(T群变groupbins方法将转换后的数据按照groupbins,将这些组作为附加变量放在输出表的末尾。例如,G=grouptransform(T、'SaleDate'、'year'、'rescale')缩放数据T到范围[0,1]和垃圾箱按销售年。

G=组变换(___数据变量指定要为前一种语法转换的表变量。

例子

G=组变换(___名称,值使用一个或多个名称-值对指定其他分组属性。例如,G = grouptransform (T,‘临时’,‘linearfill’,‘ReplaceValues’,假)附加已填充的数据作为附加的变量T而不是替换非分组变量。

B=组变换(一个群变方法根据中分组向量的唯一组合返回转换后的数据群变一个是一个向量或者矩阵。群变可以是列向量、矩阵或列向量的单元格数组。

例子

B=组变换(一个群变groupbins方法将转换后的数据按照groupbins

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

例子

BBG) = grouptransform (一个___还返回分组向量的行。

例子

全部折叠

创建包含3个团队进度状态的时间表。

timeStamp = days([1 1 1 2 2 2 3 3 3]');teamNumber = [1 2 3 1 2 3 1 2 3]';percentComplete = [14.2 28.1 11.5 NaN NaN 19.3 46.1 51.2 30.3]';T =时间表(时间戳、teamNumber percentComplete)
T=9×2时刻表timeStamp teamNumber percentComplete _________ __________ _______________ 1天1 14.2 1天2 28.1 1天3 11.5 2天1 NaN 2天2 NaN 2天3 19.3天1 46.1 3天2 51.2 3天3 30.3

填写缺失状态百分比(),使用线性插值。

G = grouptransform (T),“teamNumber”“linearfill”“完成百分比”
G =9×2时刻表时间戳组号完成百分比1 14.2 1天2 28.1天3 11.5 2天1 30.15 2天2 39.65 2天3 19.3 3天1 46.1 3天2 51.2 3天3 30.3

将填充的数据追加到原始表中,而不是替换完成百分比变量,使用“ReplaceValues”参数。

Gappend = grouptransform (T)“teamNumber”“linearfill”“完成百分比”“ReplaceValues”,错)
目瞪口呆=9×3时刻表时间戳teamNumber percentComplete linearfill_percentComplete  _________ __________ _______________ __________________________ 1天1 28.1 14.2 28.1 14.2 1天2天3 11.5 - 11.5 2天1南30.15 - 2天2南3 19.3 19.3 39.65 - 2天3天1 46.1 - 46.1三天2 3 30.3 - 30.3 51.2 - 51.2三天

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

时间戳=日期时间([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];T=表(时间戳、利润)
T=10×2表时间戳利润2017年3月4日2032 02 2017年3月30日2017年3月15日1185 10-3-2017 2587 14-3-2017 1998 1998 31-3-2017 2899 25-3-2017 3112 29-3-2017 909 21-3-2017 2619 18-3-2017 3085

按天名称分组,按2-范数将利润标准化。

G = grouptransform (T),“时间戳”“dayname”“规范”
G =10×3表时间戳利润日名称时间戳2017年3月4日0.42069 2017年3月2日星期六2017年3月1日星期四2017年3月10日星期三0.66582 2017年3月14日星期五0.60654 2017年3月31日星期二0.742 2017年3月25日星期五2017年3月29日星期六2017年3月1日星期四2017年3月15日0.79344 2017年3月10日星期三2017年3月14日0.66582 2017年3月31日星期二2017年3月25日星期五2017年3月29日星期六2017年3月28日星期二0.86630-2017年3月21日星期六

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

时间戳=日期时间([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]';

按星期分组,将利润值归一化为2-范数。显示转换后的数据及其对应的组。

[normDailyProfit, dayOfWeek] = grouptransform(利润,时间戳,“dayname”“规范”
normDailyProfit =10×10.4207 1.0000 0.7934 0.6658 0.6065 0.7461 0.6443 0.6086 0.7951 0.6387
星期五=10 x1分类星期六星期四星期三星期五星期二星期五星期六星期三星期二星期六

输入参数

全部折叠

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

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

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

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

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

    选项 描述 例子
    变量名

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

    “Var1”

    “Var1”

    变量名向量

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

    {“Var1”“Var2”}

    [" Var1”“Var2”)

    可变指标的标量或向量

    表变量索引的标量或向量

    1

    [1 3 5]

    逻辑向量

    逻辑向量,其每个元素对应一个表变量,其中符合事实的包含相应的变量和不包括它

    (真的假的真的)

    函数处理

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

    @isnumeric

    vartype下标

    属性生成的表下标vartype作用

    vartype(数字)

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

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

方法

描述

“zscore”

将数据归一化,使其均值为0,标准差为1

“规范”

用2-范数规范化数据

“平均中心”

将数据归一化使其均值为0

“重新调节”

将范围重新缩放到[0,1]

“meanfill”

用组数据的平均值填充缺少的值

“linearfill”

用非缺失组数据的线性插值填充缺失值

还可以指定一个函数句柄,该句柄返回第一个维度长度为1或与输入数据的行数相同的实体。如果函数返回第一维长度等于1的实体,则grouptransform重复该值,以便输出的行数与输入的行数相同。

数据类型:字符|一串|function_handle

要操作的表变量,指定为该表中的选项之一。数据变量指示将方法应用于输入表或时间表的哪个变量。表中未指定的其他变量数据变量通过到输出而不被操作。当数据变量未指定,grouptransform对每个非分组变量进行操作。

选项 描述 例子
变量名

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

“Var1”

“Var1”

变量名向量

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

{“Var1”“Var2”}

[" Var1”“Var2”)

可变指标的标量或向量

表变量索引的标量或向量

1

[1 3 5]

逻辑向量

逻辑向量,其每个元素对应一个表变量,其中符合事实的包含相应的变量和不包括它

(真的假的真的)

函数处理

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

@isnumeric

vartype下标

属性生成的表下标vartype作用

vartype(数字)

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

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

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

  • 容器边的列表,指定为数字向量或日期时间向量为日期时间分组变量

  • 多个存储单元,指定为整数标量

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

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

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

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

    每个箱子是1秒。

    日期时间持续时间
    “一分钟”

    每个垃圾桶为1分钟。

    日期时间持续时间
    “小时”

    每个垃圾桶是1小时。

    日期时间持续时间
    “天”

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

    日期时间持续时间
    “周” 每个垃圾桶是一个日历周。 日期时间只有
    “月” 每个垃圾箱是1个日历月。 日期时间只有
    “四分之一” 每个箱子是1个日历季度。 日期时间只有
    “年”

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

    日期时间持续时间
    “十年” 每个垃圾桶是1个十年(10个日历年)。 日期时间只有
    “世纪” 每个箱子是一个世纪(100日历年)。 日期时间只有
    “secondofminute”

    箱子的时间从0到59秒。

    日期时间只有
    “minuteofhour”

    垃圾箱的分钟从0到59。

    日期时间只有
    “hourofday”

    垃圾箱的工作时间为0到23小时。

    日期时间只有
    “dayofweek”

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

    日期时间只有
    “dayname” 垃圾箱是全天的名称,例如“星期日” 日期时间只有
    “dayofmonth” 垃圾箱是从1到31的天数。 日期时间只有
    “dayofyear” 垃圾桶是1到366天。 日期时间只有
    “weekofmonth” 垃圾箱从1到6周。 日期时间只有
    “weekofyear” 垃圾箱从1到54个星期。 日期时间只有
    “monthname” bin是完整的月份名称,例如“1月” 日期时间只有
    “蒙特霍夫年”

    垃圾箱是1到12个月。

    日期时间只有
    “quarterofyear” 垃圾箱是从1到4的四分之一。 日期时间只有

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

名称-值参数

指定可选的逗号分隔的对名称,值参数。名称参数名和价值是对应的值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:G=grouptransform(T、groupvars、groupbins、'zscore'、'IncludedEdge'、'right')

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

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

转换位置指示符,指定为数字或逻辑1符合事实的)或0)。当参数值为符合事实的grouptransform输出带有转换数据的表或数组,以代替输入的非分组变量或向量。当参数值为grouptransform将转换后的数据作为附加矩阵列或表变量附加到输入数据。

输出参数

全部折叠

输出表,作为包含每个组转换后的数据的表或时间表返回。

输出数组,作为包含转换后数据的向量或矩阵返回。

将数组输入数据的向量分组,作为列向量或列向量的单元格数组返回。

提示

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

扩展能力

介绍了R2018b