文档

从文本文件导入混合数据

这个例子展示了如何使用readtable函数将混合数据从文本文件导入到表中。然后,展示了如何修改和分析表中的数据。

示例文件概述

样例文件,outages.csv,包含了美国电力供应中断的数据。以下是文件的前几行:

地区,OutageTime、损失、客户、RestorationTime导致西南,2002-01-20 11:49,672,2902379,2002-01-24 21:58,冬季风暴东南部,2002-01-30 01:18,796,336436年,2002-02-04 11:20,冬季风暴东南部,2004-02-03 21:17,264.9,107083年,2004-02-20 03:37,冬季风暴西方,2002-06-19 13:39,391.4,378990年,2002-06-19 14:27、设备故障

该文件包含六列。文件中的第一行列出数据的列标题。以下是列的标题,以及列中数据的描述:

  • 地区:每次停电发生的五个区域之一的文本值

  • OutageTime:中断开始的日期和时间,格式为年-月-日小时:分钟

  • 损失:数字值,表示停电时的总功率损失

  • 客户:指示受影响的客户数量的整数值

  • RestorationTime:恢复电源的日期和时间,格式为年-月-日小时:分钟

  • 导致:停电原因的类别,以文本形式提供。

指定数据字段的格式

创建格式说明符的字符向量,以描述文本文件中的数据。然后可以将格式说明符传递给readtable命令,导入数据。因为outages.csv包含6列数据,创建包含6个格式说明符的字符向量,例如' % f '对于浮点数,“% C”对于绝对值,和' % D '获取日期和时间值。

formatSpec =' % C {yyyy-MM-dd HH: mm} % D % % f % D {yyyy-MM-dd HH: mm} % C '

formatSpec告诉readtable将文件中的第一列和最后一列作为分类数据读取,将第二列和第五列作为格式化的日期和时间数据读取,将第三列和第四列作为浮点值读取。为% {yyyy-MM-dd HH: mm} D说明符,花括号之间的文本描述日期和时间数据的格式。

读文本文件

调用readtable读取文件。使用分隔符名称-值对参数指定分隔符。默认分隔符是逗号。使用格式名称-值对参数以及formatSpec值来描述文件中数据字段的格式。

T = readtable (“outages.csv”“分隔符”','...“格式”, formatSpec);

readtable返回一个包含中断数据的表。

查看表的前5行和前4个变量。

T (1:5, 1:4)
ans = 5x4 table Region OutageTime Loss Customers _________ ________________ ________________ SouthWest 2002-02-01 12:18 458.98 1.8202e+06 SouthEast 2003-01-23 00:49 530.14 2.1204e+05 SouthEast 2003-02-07 21:15 289.4 1.4294e+05 West 2004-04-06 05:44 434.81 3.4037e+05 MidWest 2002-03-16 06:18 186.44 2.1275e+05

表中包含的数据类型是混合的。第一个和最后一个变量是分类数组,第二个和第五个变量是datetime数组,其余的变量是数值数据。

修改导入数据

修改中datetime列的格式T

T.OutageTime.Format =“dd-MMM-yyyy HH: mm: ss”;T.RestorationTime.Format =“dd-MMM-yyyy HH: mm: ss”

查看表的前5行和前4个变量。

T (1:5, 1:4)
ans = 5x4 table Region OutageTime Loss Customers _________ ____________________ ________________ SouthWest 01-Feb-2002 12:18:00 458.98 1.8202e+06 SouthEast 23-Jan-2003 00:49:00 530.14 2.1204e+05 SouthEast 07-Feb-2003 21:15:00 289.4 1.4294e+05 West 06- apr -2004 05:44:00 434.81 3.4037e+05 MidWest 16-Mar-2002 06:18:00 186.44 2.1275e+05

追加导入数据

计算每次停电的持续时间,并将数据附加到表中。

T.Duration = T.RestorationTime - T.OutageTime;

控件中的前5行数据持续时间列的T

T.Duration (1:5)
ans = 5x1 duration array 148:32:00 NaN 226:59:00 00:26:00 65:05:00

进口数据

对表进行排序OutageTime变量。然后,查看排序表的前5行和前4个变量。

T = sortrows (T)“OutageTime”“提升”);T (1:5, 1:4)
ans = 5x4 table Region OutageTime Loss Customers _________ ____________________ ________________ SouthWest 01-Feb-2002 12:18:00 458.98 1.8202e+06 MidWest 05- mar -2002 17:53:00 96.563 2.8666e+05 MidWest 16-Mar-2002 06:18:00 186.44 2.1275e+05 MidWest 26-Mar-2002 01:59:00 388.04 5.6422e+05 MidWest 20-Apr-2002 16:46:00 23141 NaN

另请参阅

相关的话题

这个话题有用吗?