拆分表数据变量和应用函数

这个例子展示了如何从一个表由停电的区域和导致分裂停电数据成组。然后,它说明了如何应用函数来计算统计信息,每个组并收集在一个表中的结果。

加载停电数据

样例文件,outages.csv,包含代表在美国电力公司停电数据。该文件包含六列:区域OutageTime损失客户RestorationTime,导致。读outages.csv到表。

T = readtable('outages.csv');

兑换区域导致到分类数组和OutageTimeRestorationTimedatetime数组。显示前5行。

T.Region= categorical(T.Region); T.Cause = categorical(T.Cause); T.OutageTime = datetime(T.OutageTime); T.RestorationTime = datetime(T.RestorationTime); T(1:5,:)
ANS =5×6表___________ ______ __________地区OutageTime损失客户RestorationTime引起____ ___________售予西南2002-02-01 12:18 458.98 - 1.8202 e + 06 2002-02-01 16:50暴风雪东南2003-01-23 00:49 530.14 - 2.1204 e + 05 NaT暴风雪东南2003-02-07)21:15 289.4 - 1.4294 e + 05 2003-02-07 08:14暴风雪西2004-04-06 05:44 434.81 - 3.4037 e + 05 2004-04-06 06:10设备故障中西部2002-03-16 06:18 186.44 - 2.1275 e + 05 2002-03-16 23:23严重的风暴

计算最大功率损耗

确定最大功率损失,由于在每个区域停电。该findgroups函数返回G,组数的向量从创建T.Region。该splitapply函数使用G分开T.Loss分成五组,对应于五个区域。splitapply应用马克斯函数应用于每个组并连接的最大功率损失到载体中。

G = findgroups(T.Region);maxLoss = splitapply(@最大,T.Loss,G)
maxLoss =5×1104×2.3141 2.3418 0.8767 0.2796 1.6659

计算由于停电原因造成的最大功率损耗。指定导致是分组变量,使用表的索引。创建包含的最大功率损失及其原因的表。

T1 = T(:,'原因');[G,powerLosses] = findgroups(T1);powerLosses.maxLoss = splitapply(@最大,T.Loss,G)
powerLosses =10×2表原因maxLoss ________________ _______攻击582.63地震258.18能源应急11638设备故障16659火灾872.96严重的风暴8767.3雷雨23418未知23141风2796冬季风暴2883.7

powerLosses是一个表,因为T1是一个表。您可以附加的最大损失为另一个表变量。

按各区域原因计算最大功率损耗。指定区域导致是分组变量,使用表索引。创建一个包含最大功耗的表,并显示前15行。

T1 = T (: {'区域''原因'});[G,powerLosses] = findgroups(T1);powerLosses.maxLoss = splitapply(@最大,T.Loss,G);powerLosses(1:15,:)
ANS =15×3的表中西部地区引起maxLoss _____ ___________ _________攻击0中西部能源应急2378.7中西部设备故障903.28中西部暴风6808.7中西部雷雨15128中西部未知23141中西部风2053.8中西部暴风雪669.25袭击东北部405.62东北地震0东北能源应急11638东北设备故障794.36东北火872.96东北暴风6002.4 23418年东北雷雨

客户的计算数量的影响

确定由事业和区域客户电力中断的影响。因为T.Loss包含为NaN值,包在一个匿名函数使用'omitnan'输入参数。

osumFcn = @(X)(总和(X,'omitnan'));powerLosses.totalCustomers = splitapply(osumFcn,T.Customers,G);powerLosses(1:15,:)
ANS =15×4表中西部地区引起maxLoss ___________ totalCustomers ____ ____ * * *攻击0 0中西部能源应急设备故障903.28 - 1.7822 2378.7 - 6.3363 e + 05中西部e + 05中西部中西部雷雨暴风6808.7 - 1.3511 e + 07年15128 4.2563 e + 06中西部未知23141 3.9505 e + 06中西部风2053.8 - 1.8796 669.25 - 4.8887 e + e + 06中西部冬季风暴06东北攻击0 0 405.62 2181.8东北地震东北能源应急东北11638 1.4391 e + 05设备故障794.36 3.9961e+05东北火险872.96 6.1292e+05东北强风暴6002.4 2.7905e+07东北雷暴23418 2.1885e+07

停电计算平均持续时间

确定所有时间美国停电的平均持续时间。添加停电的平均持续时间到powerLosses。因为T.RestorationTime的NaT值,忽略结果为NaN计算平均持续时间时的值。

d = T.RestorationTime  -  T.OutageTime;H =小时(d);omeanFcn = @(X)(平均值(X,'omitnan'));powerLosses。meanOutage = splitapply (omeanFcn H, G);powerLosses(1:15,:)
ANS =15×5表地区原因maxLoss totalCustomers meanOutage _________ ________________ _______ ______________ __________中西部攻击0 0 335.02中西部能源告急2378.7 6.3363e + 05 5339.3中西部设备故障903.28 1.7822e + 05 17.863中西部强风暴6808.7 1.3511e + 07 78.906中西部雷雨15128 4.2563e + 0651.245中西部未知23141 3.9505e + 06 30.892中西部风2053.8 1.8796e + 06 73.761中西部的暴风雪669.25 4.8887e + 06 127.58东北地区袭击405.62 2181.8 5.5117东北地区地震0 0 0东北亚能源应急11638 1.4391e + 05 77.345东北地区设备故障794.36 3.9961E + 05 87.204东北地区火872.96 6.1292e + 05 4.0267东北地区强风暴6002.4 2.7905e + 07 2163.5东北地区雷雨23418 2.1885e + 07 46.098

也可以看看

|||

相关的例子

更多关于