主要内容

分割表数据变量和应用功能

这个例子展示了如何分裂断电数据从一个表分成了不同的组,地区和停电的原因。然后展示如何应用函数来计算每一组统计数据和收集表中的结果。

断电数据加载

样例文件,outages.csv,包含数据代表在美国电力中断。文件包含六列:地区,OutageTime,损失,客户,RestorationTime,导致。读outages.csv一个表中。

T = readtable (“outages.csv”);

转换地区导致分类数组,OutageTimeRestorationTimedatetime数组。显示前五行。

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 (@max 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(@max,T.Loss,G)
powerLosses =10×2表导致maxLoss ___________ _________攻击258.18 582.63级地震能量紧急11638设备故障16659火872.96 8767.3暴风雷雨23418未知23141 2883.7 2796年冬季风暴

powerLosses是一个表,因为T1是一张桌子。你可以添加作为另一个表变量的最大损失。

计算最大的功率损耗,导致在每个区域。指定地区导致分组变量,使用索引表。创建一个表,其中包含最大的功率损耗和显示前15行。

T1 = T (: {“地区”,“原因”});[G, powerLosses] = findgroups (T1);powerLosses。maxLoss =splitapply(@max,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包含值,包装总和在一个匿名函数使用“omitnan”输入参数。

osumFcn = @ (x)(总和(x,“omitnan”));powerLosses。来talCustomers = 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.9961 e + 05东北火872.96 - 6.1292 e + 05东北东北雷雨暴风6002.4 - 2.7905 e + 07年23418 2.1885 e + 7

计算平均停电时间

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

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 5339.3 335.02中西部能源应急2378.7 - 6.3363 e + 05中西部设备故障903.28 - 1.7822 e + 05 17.863中西部暴风6808.7 - 1.3511 e + 07 78.906中西部雷雨15128 4.2563 3.9505 e + e + 06 51.245中西部未知23141 06 30.892中西部风2053.8 - 1.8796 e + 06 73.761中西部暴风雪669.25 - 4.8887 e + 06 127.58东北攻击东北地震0 0 0 405.62 2181.8 5.5117东北能源应急东北11638 1.4391 e + 05年77.345设备故障794.36 - 3.9961 e + 05 87.204东北火872.96 - 6.1292 e + 05 4.0267东北暴风6002.4 - 2.7905 e + 07年2163.5东北雷雨23418 2.1885 e + 07年46.098

另请参阅

|||

相关的话题