主要内容

选择在时间表

时间表是一个类型的表,将时间与每一行。您可以选择基于时间的子集的数据在几个方面:

  • 找到时间只在一定范围内使用timerangewithtol功能。

  • 匹配重复单位的时间,如几天或几个月,使用的组件datetime数组。

  • 重新取样,或一组数据调整时间函数。

例如,读取一个示例文件outages.csv代表电力中断,包含的数据从2002 - 2014年在美国。行乘以向量,OutageTime表明,中断发生时。的readtimetable进口是一个函数datetime数组中。显示前五行。

TT = readtimetable (“outages.csv”);头(TT, 5)
OutageTime地区损失客户RestorationTime引起___________ _________________ ______ __________ ___________ ___________________ 2002-02-01 12:18{“西南”}458.98 - 1.8202 e + 06 2002-02-07 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-17 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-18 23:23{“暴风”}

R2019a之前,阅读表格数据readtable并把它转换成一个时间表table2timetable

选择时间范围

找到数据在一个特定的范围,您可以使用timerange函数,它定义了基于时间的下标索引。例如,定义一个范围,2008年的夏天,6月20日开始,9月21日结束。默认情况下,timerange定义了一个半开区间,左边是封闭和开放在右边,所以指定结束日期为9月22日。

TR = timerange (“2008-06-20”,“2008-09-22”)
TR =时间表timerange下标:选择时间表行与次半开区间:[20 - 2008年6月——就是,22 - 9 - 2008就是)看到选择次时间表。

找到故障发生的范围,然后情节的客户数量随着时间的影响。

:summer08 = TT (TR);茎(summer08.OutageTime summer08.Customers) ylabel (“顾客”)

图包含一个坐标轴对象。轴与ylabel客户对象包含一个类型的对象。

几个中断在那段时间有很高的客户范围的影响。扩大范围的时间跨越整个2008年,寻找同样高的数字。

TR = timerange (“2008”,“年”);:all08 = TT (TR);high08 = all08 (all08。客户> 500000年:);茎(high08.OutageTime high08.Customers) ylabel (“客户”)

图包含一个坐标轴对象。轴与ylabel客户对象包含一个类型的对象。

timerange功能也有利于选择具体日期。选择时间进行比较datetime值可以给误导,因为所有的结果datetime包括日期和时间值的组件。然而,当你仅指定组件的一个日期datetime价值,组件的时间是午夜。因此,虽然是6月26日的数据,这样的比较不返回任何结果。

任何(summer08。OutageTime== datetime(“2008-06-26”))
ans =逻辑0

相反,您可以使用timerange

TR = timerange (“2008-06-26”,“天”);:june26 = summer08 (TR)
june26 =1×5时间表OutageTime地区损失客户RestorationTime引起___________ _________________ ______ ___________,___________ _________________ 2008-06-26 22:36{“东北”}425.21 93612 2008-06-27 06:53{“雷雨”}

定义一个范围的另一种方法是指定一个宽容时间使用withtol。例如,从2008年夏天找到行OutageTime在三天的劳动节,9月1日。

WT = withtol (“2008-09-01”天(3));:nearSep1 = summer08 (WT)
nearSep1 =4×5时间表OutageTime地区损失客户RestorationTime引起___________ _________________ ______ ___________,___________ ___________________ 2008-09-01二三35{“东南”}206.27 - 2.27 e + 05 NaT{“设备故障”}2008-09-01 00:18{“中西部”}74213 - 510.05 2008-09-01 14:07{“雷雨”}2008-09-02 19:01{“中西部”}南2.215 e + 05 2008-09-03 02:58{“暴风”}2008-08-29 20:25{‘西方’}南31624 2008-09-01 01:51{‘风’}

匹配单元的时间

你也可以使用单位datetime值,如几小时或几天,来确定逻辑行索引。这种方法可以用于指定周期间隔。

例如,找到的值OutageTime组件的值3或更少的月,对应于1月,每年的2月和3月。使用生成的逻辑数组索引TT

TR =(月(TT.OutageTime) < = 3);:winterTT = TT (TR);头(winterTT, 5)
OutageTime地区损失客户RestorationTime引起___________ _________________ ______ __________ ___________,___________ 2002-02-01 12:18{“西南”}458.98 - 1.8202 e + 06 2002-02-07 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-17 08:14{“暴风雪”}2002-03-16 06:18{“中西部”}186.44 - 2.1275 e + 05 2002-03-18 23:23{“暴风”}2005-02-04 08:18{“中西部”}{‘攻击’}南南2005-02-04 19:51

创建一个饼图的冬季的原因。的只接受数字或函数分类输入,首先转换导致分类

winterTT。导致= categorical(winterTT.Cause); pie(winterTT.Cause) title(“原因中断,一月到三月”);

组的时间

调整时间函数调整行乘以创建指定的时间间隔,通过重采样或分组的价值观。其预定义的时间间隔从秒到年,您可以指定如何处理缺失或间隔的多个值。例如,您可以选择第一个从每周观察,或计数观察四分之一。

故障数据,您可以使用调整时间每年找总数。首先,创建一个时间表只有数值变量。然后,调用调整时间并指定一个年度区间,结合使用一个和多个值。输出为每年一行,包含总损失和总客户在那一年的影响。

numTT = TT (:, vartype (“数字”));numTT =调整时间(numTT,“年”,“和”);头(numTT, 5)
OutageTime损失客户___________ _____,_____ 2002-01-01 00:00 81335 1.3052 e + 07年2003-01-01 00:00 58036 1.396 e + 07年51014 0 2004-01-01 1.5523 8.7334 e + e + 07年33980 0 2005-01-01 35129 2.5729 e + 07年06 2006-01-01 00:00

创建一个条形图的数量客户每年的影响。

酒吧(numTT.OutageTime numTT.Customers)包含(“年”)ylabel (“顾客”)

图包含一个坐标轴对象。坐标轴对象包含一年,ylabel客户包含一个对象类型的酒吧。

使用行乘以计算时间

您可以使用与其他行乘以一个时间表datetime持续时间值进行计算。例如,计算中列出的断电停机的时间数据。然后计算每月停机时间的中位数和情节。

第一次添加的停机时间TT通过减去行乘以(停电)的开始RestorationTime(停电)的两端。改变的格式OutageDuration显示停机的时间天。显示前五行TT

TT。OutageDuration = TT。RestorationTime- TT.OutageTime; TT.OutageDuration.Format =' d ';头(TT, 5)
OutageTime地区损失客户RestorationTime引起OutageDuration ___________ _________________ ______ __________ ___________ 2002-02-01 12:18 ___________________ * * *{“西南”}458.98 - 1.8202 e + 06 2002-02-07 16:50{“暴风雪”}6.1889天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-17 08:14{“暴风雪”}9.4576天2004-04-06 05:44{‘西方’}434.81 - 3.4037 e + 05 2004-04-06 06:10{“设备故障”}0.018056天2002-03-16 06:18{“中西部”}186.44 - 2.1275 e + 05 2002-03-18 23:23{“暴风”}2.7118天

创建一个时间表,只有停机时间。一些行TT有缺失值,NaT恢复时间,导致OutageDuration。删除值从medianTT,可以使用rmmissing函数。然后使用调整时间计算每月的平均停机时间。显示前五行medianTT

medianTT = TT (:,“OutageDuration”);medianTT = rmmissing (medianTT);medianTT =调整时间(medianTT,“月”,@median);头(medianTT, 5)
2002-02-01 00:00 6.1889天2002-03-01 00:00 OutageTime OutageDuration ___________ * * * 2.7472天0.72917天2002-04-01 00:00南天2002-05-01 00:00 2002-06-01 00:00 0.22431天

创建一个梯级的每月平均停机时间的图表。

楼梯(medianTT.OutageTime medianTT.OutageDuration)包含(“年”)ylabel (“平均持续时间(天)”)

图包含一个坐标轴对象。坐标轴对象包含一年,ylabel平均持续时间(天)包含一个楼梯类型的对象。

另请参阅

|||||||||||

相关的话题