unstack

将数据从单个变量解堆栈为多个变量

描述

例子

U=拆散(年代,var,ivar)转换表或时间表,年代,为等效的表或时间表,U,那就是拆散的。var指定变量年代,每一个都被分解成多个变量U。一般来说,U包含更多的变量,但行数更少年代

ivar输入参数指定变量年代unstack用作指示符变量。中的值ivar确定哪些变量U包含从varunstacking之后。

unstack函数将其余的变量在不同的表和时间表。

  • 如果年代那么,是桌子吗unstack将其余变量视为分组变量。组变量中的每个值的惟一组合都标识了其中的一组行年代它被分解成一排U

  • 如果年代那么,是时刻表吗unstack丢弃尚存变数。然而,unstack将行时间的向量作为分组变量。

你不能拆散一个表的行名称或时间表的排次,或任一指定为指针变量。您可以指定行名称或行倍与常量变量'ConstantVariables'论点。

U=拆散(年代,var,ivar,名称,值)转换表格或时间表年代由一个或多个指定的附加选项名称,值对参数。

例如,您可以指定如何操作unstack将变量年代变量在U

例子

(U,] =拆散(___)还返回一个索引向量,,表示行之间的对应关系U和行年代。您可以使用前面的任何输入参数。

例子

全部折叠

创建一个表格,显示在各乡镇的各种风暴降雪量。指定使用的城镇明确的数组,因为在这个表中有一组固定的城镇名。

风暴= [3;3;1;3;1;1;4,2,4,2,4,2];镇=分类({“纳提克”;“伍斯特”;“纳提克”;“波士顿”;“波士顿”;“伍斯特”;“波士顿”;“纳提克”;“伍斯特”;“伍斯特”;“纳提克”;“波士顿”});降雪= [0;3,5,5、9、10、12、13、15、16、17、21);S =表(风暴,小镇,降雪)
S =12×3的表1 .波士顿2 .波士顿9 .伍斯特9 .伍斯特10 .波士顿12 .伍斯特13 .伍斯特15 .伍斯特16 .伍斯特17 .波士顿21

年代每个风暴包含三个降雪量条目,每个城镇一个。年代是堆叠格式,用明确的数据类型。有表变量明确的数据类型是有用的指示变量和分组变量。

独立的变量降雪分为三个变量,每个变量中指定的城镇一个,。输出表,U,在开拆的格式。

U = unstack(年代,“雪”,“小镇”)
U =4×4表风暴“波士顿”、“纳蒂克”、“伍斯特”、“波士顿”、“纳蒂克”、“伍斯特”、“波士顿”、“纳蒂克”、“伍斯特”

在每一行U包含行数据年代在组变量中有相同的值,风暴。唯一值的顺序风暴确定数据的顺序U

将数据反堆栈并将聚合函数应用于同一组中在指示符变量中具有相同值的多行。

创建一个包含两天内两只股票价格数据的时间表。若要指定行时间,请使用datetime值。使用a指定股票的名称categorlcal数组,因为这个时间表有一套固定的股票名称。

日期= [repmat (datetime ('2008-04-12')、6、1);repmat (datetime ('2008-04-13')、5、1)];股票=分类({'Stock1';'Stock2';'Stock1';'Stock2';'Stock2';'Stock2';'Stock1';'Stock2';'Stock2';'Stock1';'Stock2'});价格= [60.35;27.68;64.19;25.47;28.11;27.98;63.85; 27.55; 26.43; 65.73; 25.94];S =时间表(日期,股票,价格)
S =11×2时间表日股价___________ ______ _____ 12-APR-2008 Stock1 60.35 12-APR-2008 Stock2 27.68 12-APR-2008 Stock1 64.19 12-APR-2008 Stock2 25.47 12-APR-2008 Stock2 28.11 12-APR-2008 Stock2 27.98 13-APR-2008 Stock1 63.85 13-APR-2008 Stock2 27.55 13-APR-2008 Stock2 26.43 13-APR-2008 Stock1 65.73 13-APR-2008 Stock2 25.94

年代包含两个价格Stock1在第一天和四个价格Stock2在第一天。

创建一个时间表,包含每个股票的单独变量和每天一行。使用日期作为分组变量(的行倍矢量),并应用聚合功能,@意思,从变量的数值,价格,对于每一组。

(U) = unstack(年代,“价格”,“股票”,“AggregationFunction”@mean)
U =2×2的时间表日期Stock1 Stock2 ___________ ______ ______ 12-APR-2008 62.27 27.31 13-APR-2008 64.79 26.64
是=2×11 7

U包含的平均价格按日期分组每只股票。

标识每组行的第一个值的索引年代。与日期4月13日该组的第一个值,是2008年的第七行年代

输入参数

全部折叠

输入表,指定为表或时间表。年代必须包含数据变量来解堆栈,var和一个指标变量,ivar。中的其余变量年代既可以作为分组变量,也可以作为常量变量。

在变量年代要反堆栈,指定为正整数、正整数的向量、字符向量、字符向量的单元数组、字符串数组或逻辑向量。

指标变量年代,指定为正整数、字符向量或字符串标量。指定的变量中的值ivar指出U包含从所指定的变量中提取的元素var

指定的变量ivar可以是数字向量、逻辑向量、字符数组、字符向量的单元数组、字符串数组或分类向量。

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。名称参数名和价值是对应的值。名称必须出现在引号内。可以按任意顺序指定多个名称和值对参数名1,值1,...,NameN,值N

例:AggregationFunction, @mean应用聚合函数@意思的值var

分组变量年代定义行组,指定为逗号分隔的对“GroupingVariables”和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。在每一组行年代变成了一行U

年代可以在第一个维度上使用行标签。如果年代是一个表,那么它可以有行名的标签。如果年代是一个时间表,那么它必须有行时间作为标签。unstack可以把行标签作为分组变量。

  • 如果您没有指定“GroupingVariables”,年代那么,是时刻表吗unstack将行时间视为分组变量。

  • 如果您指定“GroupingVariables”,年代那么,有行名称或行时间吗unstack不将它们视为分组变量,除非您将它们包含在?的值中“GroupingVariables”

组内的变量常量,指定为逗号分隔的对'ConstantVariables'和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

这些变量的值U是从每个组的第一行中取出的吗年代

可以包括的行名称或行时间年代指定的值时'ConstantVariables'

中的新数据变量的名称U,指定为逗号分隔的对,由“NewDataVariableNames”以及由字符向量或字符串数组组成的单元格数组。

如果您没有指定“NewDataVariableNames”,然后unstack为新数据变量创建名称U所指定的指示符变量中的值ivar

从值聚集功能var到单个值,指定为逗号分隔的对,该对由“AggregationFunction”和一个函数句柄。unstack此功能从有相同的值相同的组适用于行ivar。函数必须将数据值聚合为单个值。

如果不指定的值“AggregationFunction”,然后unstack根据数据类型使用不同的默认聚合函数。

  • 数字默认的聚合函数是总和

  • 非数字默认的聚合函数是独特的

如果没有要聚合的数据值,因为没有与给定指示符值对应的数据值ivarunstacking之后,然后unstack必须填充未堆叠输出表中的空元素。在这种情况下,unstack调用与空数组作为输入的聚合函数。该值unstack填充取决于聚合函数在其输入为空数组时返回什么。

当没有要聚合的数据时,由聚合函数返回的值

值插入到未堆叠表的空元素中

聚合函数引发错误

unstack引发错误。

空数组

适当的数据类型的填充值(,NaT,”“,等等)。

例:如果聚合函数是独特的,它返回一个0×0的矩阵数组,然后unstack插入一个输入输出表。

标值

从聚合函数返回的标量值。

例:如果聚合函数是元素个数并返回0,然后unstack插入一个0输入输出表。

向量、矩阵或多维数组

unstack引发错误。

变量命名规则U,指定为逗号分隔的对,由“VariableNamingRule”要么是值“修改”'保留'

的值“VariableNamingRule”指定输出表或时间表命名变量以下规则。

的价值“VariableNamingRule”

规则

“修改”(默认)

修改输入表或时间表中的名称,使输出中相应的变量名称也是有效的MATLAB®标识符。

'保留'

保留从输入表或时间表采取原来的名称。在输出对应的变量名可以具有任何Unicode®字符,包括空格和非ASCII字符。

注意:在某些情况下,unstack在什么情况下必须修改原始名称'保留'是规则。这些情况包括:

  • 重复的名字

  • 名称与表维名称冲突

  • 与保留名冲突的名称。

  • 长度超过值的名称namelengthmax

输出参数

全部折叠

输出表,返回表或时间表。U包含取消堆栈的数据的变量,分组变量,并且每个基团从任何恒定的变量的第一个值。

数据的顺序U基于分组变量中惟一值的顺序。

您可以在其中存储其他元数据,如描述、变量单元、变量名称和行名称U。有关更多信息,请参见属性部分表格时间表

索引年代,作为列向量返回。对于每一行U,指标向量,中的对应行组中的第一个值的索引年代

更多关于

全部折叠

分组变量

分组变量是用于组或分类,数据实用程序变量。分组变量是用于概括或按组可视化数据是有用的。您可以通过指定一个或多个分组变量定义你的表组。

一个分组变量可以是以下任何一个:

  • 分类向量

  • 字符向量的单元数组

  • String数组

  • 字符数组

  • 数值向量,通常含有正整数

  • 逻辑向量

具有相同分组变量值的行属于相同的组。如果使用多个分组变量,则具有相同的分组变量值组合的行属于同一组。

提示

  • 您可以指定多个数据变量年代,每个变量成为一组未堆叠的数据变量U。使用正整数的向量,包含多个变量名的单元阵列或字符串数​​组,或逻辑矢量来指定var。由输入参数指定的一个指示符变量,ivar,适用于由指定的所有数据变量var

兼容性的考虑

展开全部

行为在R2020a中改变

行为在R2020a中改变

介绍了R2013b