主要内容

解开

类别:数据集

(不推荐)将数据集数组从单个变量取消堆栈为多个变量

这个数据集不建议使用数据类型。若要处理异构数据,请使用MATLAB®桌子改为数据类型。参见MATLAB桌子有关更多信息,请参阅文档。

语法

A=取消堆栈(B,数据变量,indvar)
[A,iB]=取消堆栈(B,数据变量,indvar)
A=取消堆栈(B、数据变量、indvar、,“参数”,价值)

描述

A=取消堆栈(B,数据变量,indvar)取消数据集数组中单个变量的堆栈B在中转换为多个变量A.. 一般来说A.包含的变量比B.

数据变量指定中的数据变量B解开。因德瓦在中指定一个指示符变量B这决定了中的哪个变量A.中的每个值数据变量未被压入。解开处理中的其余变量B作为分组变量。其值的每个唯一组合定义了一组B这将被分解成一个单独的观察结果A..

解开创造M中的数据变量A.哪里M是中的组级别数因德瓦.这些价值观因德瓦指出哪一个M变量从中接收哪些值数据变量这个J-中的第th个数据变量A.包含来自的值数据变量这与观察到的因德瓦价值是最重要的J-月日M可能的级别。这些级别的要素M中没有相应数据值的变量B“存在”包含默认值。

数据变量是正整数、字符向量、字符串标量或包含单个真值的逻辑向量。因德瓦是正整数、变量名或包含单个真值的逻辑向量。

[A,iB]=取消堆栈(B,数据变量,indvar)返回一个索引向量iB表示观察结果之间的对应关系A.那些在B.对于每一项观察A.,iB包含中相应观察值组中第一个的索引B.

有关分组变量的详细信息,请参见分组变量.

输入参数

A=取消堆栈(B、数据变量、indvar、,“参数”,价值)使用以下参数名称/值对来控制解开在中转换变量B输入变量A.:

“群变” 将变量分组到B它定义了观察组。群变是正整数、正整数向量、字符向量、字符串数组、字符向量单元格数组或逻辑向量。默认值为中的所有变量B未列入数据变量因德瓦.
“NewDataVarNames” 包含数据变量名称的字符向量的字符串数组或单元格数组解开应该在A..Default是中指定的分组变量的组名因德瓦.
“聚合乐趣” 一种函数句柄,它接受来自数据变量并返回单个值。堆栈将此函数应用于具有相同值的同一组的观测值因德瓦。函数必须将数据值聚合为单个值,在这种情况下无法恢复B从…起A.使用堆栈。默认值为@总数用于数字数据变量。对于非数值变量,没有默认值,必须指定“聚合乐趣”如果同一组中的多个观测值具有相同的因德瓦.
“康斯塔瓦” 变量B抄送A.不拆垛。中这些变量的值A.从每组的第一次观察中得出B,因此这些变量在每个组中通常应该是常量。康斯塔瓦是正整数、正整数向量、字符向量、字符串数组、字符向量单元格数组或逻辑向量。默认值为无变量。

您还可以在中指定多个数据变量B,每一个都成为一组M变量A.。在这种情况下,请指定数据变量作为正整数的向量,包含变量名的字符串数组或单元格数组,或逻辑向量。只能使用因德瓦.中每组数据变量的名称A.中相应数据变量的名称B与中指定的名称连接“NewDataVarNames”。中指定的函数“聚合乐趣”必须返回包含单行的值。

例子

将估计流感发病率的多个变量合并为一个变量。然后按日期取消对估计流感发病率的统计。

load flu%流感有一个“日期”变量和10个估计流感发病率的变量(在9个不同的地区,通过谷歌搜索估计,再加上CDC的全国估计)。将这10个变量组合成一个%数组,该数组有一个数据变量“FluRate”,还有一个指示符%variable“Region”,表示每个估计值来自哪个区域。[flu2,iflu]=stack(flu,2:11,“NewDataVarName”,“FluRate”,“IndVarName”,“Region”)%流感的第二次观察是在2005年10月16日。请查找与该日期对应的FLU2中的观察值%。FLU(2,:)FLU2(iflu==2,:)%使用该数组中的“Date”变量将“FluRate”拆分为52%的独立变量,每个变量包含每个唯一日期%的估计流感发病率。新数组对每个区域都有一个观察。实际上,这是原始数组FLU“在其一侧”。dateNames=cellstr(datestr(FLU.Date,'mmm_DD_yyyyy');[flu3,iflu2]=unstack(flu2,'FluRate','Date',…'NewDataVarNames',dateNames)%FLU3中的观测值表示区域,IFLU2表示每个区域在flu2中出现的第一个百分比。flu2(IFLU2,:)

另见

|

话题