目录
语法
说明
示例
基于文本文件创建时间表
使用导入选项基于文件创建时间表
基于文件创建时间表并指定行时间
从电子表格文件创建时间表并格式化输入数据
readtimetable函数的功能是基于文件创建时间表。
语法
TT = readtimetable(filename) TT = readtimetable(filename,opts) TT = readtimetable(___,Name,Value)
讯享网
说明
TT = readtimetable(filename) 通过从文件中读取列向数据来创建时间表。
readtimetable 基于文件的扩展名确定文件格式:
- .txt、.dat 或 .csv(适用于带分隔符的文本文件)
- .xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx 或 .ods(适用于电子表格文件)
- .xml(适用于可扩展标记语言 (XML) 文件)。
对于文本和电子表格文件,readtimetable 为该文件中的每列在 TT 中创建一个变量并从文件的第一行中读取变量名称。对于 XML 文件,readtimetable 在 T 中为检测为时间表变量的每个元素或属性节点创建一个变量。变量名称对应于元素和属性名称。
readtimetable 将表格数据中 datetime 或 duration 类型的第一列设置为时间表的行时间。其余列成为时间表的变量。
TT = readtimetable(filename,opts) 还使用导入选项 opts。
TT = readtimetable(___,Name,Value) 基于文件创建一个时间表,并通过一个或多个名称-值对组参数指定其他选项。需要在上述语法的输入参数之后指定名称-值对组。
要为数据设置特定的导入选项,可以使用 opts 对象,也可以指定名称-值对组。当指定除 opts 之外的名称-值对组时,readtimetable 仅支持下列名称-值对组:
- 文本和电子表格参数 - ReadVariableNames、RowTimes、SampleRate、TimeStep、StartTime
- 仅文本参数 - DateLocale、Encoding
- 仅电子表格参数 - Sheet、UseExcel
示例
基于文本文件创建时间表
基于逗号分隔的文本文件创建表。
讯享网TT = readtimetable('outages.csv');
显示表的摘要。创建时间表时,如果没有为行时间指定任何参数,则 readtimetable 函数会检测并指定数据中的第一个日期时间变量或持续时间变量 OutageTime 作为行时间变量。其余变量成为时间表的变量。
summary(TT) RowTimes: OutageTime: 1468x1 datetime Values: Min 2002-02-01 12:18 Median 2010-03-18 21:05 Max 2014-01-15 02:41 Variables: Region: 1468x1 cell array of character vectors Loss: 1468x1 double Values: Min 0 Median 180.26 Max 23418 NumMissing 604 Customers: 1468x1 double Values: Min 0 Median 75765 Max 5.9689e+06 NumMissing 328 RestorationTime: 1468x1 datetime Values: Min 2002-02-07 16:50 Median 2010-03-31 10:54 Max 2042-09-18 23:31 NumMissing 29 Cause: 1468x1 cell array of character vectors
使用导入选项基于文件创建时间表
检测文本文件的导入选项,指定变量类型,然后基于数据创建时间表。
基于文件创建导入选项对象,并检查变量选项。
讯享网opts = detectImportOptions('outages.csv'); opts.VariableOptions ans = 1x6 heterogeneous VariableImportOptions (TextVariableImportOptions, DatetimeVariableImportOptions, NumericVariableImportOptions) array with properties: Name Type FillValue TreatAsMissing QuoteRule Prefixes Suffixes EmptyFieldRule
修改选项对象,为数据中的变量指定所需的数据类型。将变量 Region 和 Cause 的数据类型更改为 categorical。
opts = setvartype(opts,{'Region','Cause'},{'categorical','categorical'});
使用 readtimetable 以及选项对象导入时间表。然后显示该时间表的汇总。
讯享网TT = readtimetable('outages.csv',opts); summary(TT) RowTimes: OutageTime: 1468x1 datetime Values: Min 2002-02-01 12:18 Median 2010-03-18 21:05 Max 2014-01-15 02:41 Variables: Region: 1468x1 categorical Values: MidWest 142 NorthEast 557 SouthEast 389 SouthWest 26 West 354 Loss: 1468x1 double Values: Min 0 Median 180.26 Max 23418 NumMissing 604 Customers: 1468x1 double Values: Min 0 Median 75765 Max 5.9689e+06 NumMissing 328 RestorationTime: 1468x1 datetime Values: Min 2002-02-07 16:50 Median 2010-03-31 10:54 Max 2042-09-18 23:31 NumMissing 29 Cause: 1468x1 categorical Values: attack 294 earthquake 2 energy emergency 188 equipment fault 156 fire 25 severe storm 338 thunder storm 201 unknown 24 wind 95 winter storm 145
基于文件创建时间表并指定行时间
从以逗号分隔的文本文件中读取一个表,并使用选择的行时间变量创建一个时间表。
创建一个导入选项对象并预览表格数据。
opts = detectImportOptions('outages.csv'); preview('outages.csv',opts) ans=8×6 table Region OutageTime Loss Customers RestorationTime Cause _____________ ________________ ______ __________ ________________ ___________________ {'SouthWest'} 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 {'winter storm' } {'SouthEast'} 2003-01-23 00:49 530.14 2.1204e+05 NaT {'winter storm' } {'SouthEast'} 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 {'winter storm' } {'West' } 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 {'equipment fault'} {'MidWest' } 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 {'severe storm' } {'West' } 2003-06-18 02:49 0 0 2003-06-18 10:54 {'attack' } {'West' } 2004-06-20 14:39 231.29 NaN 2004-06-20 19:16 {'equipment fault'} {'West' } 2002-06-06 19:28 311.86 NaN 2002-06-07 00:51 {'equipment fault'}
通过将 RestorationTime 变量指定为时间表的行时间变量来创建一个时间表。然后,显示该时间表的汇总。
讯享网TT = readtimetable('outages.csv','RowTimes','RestorationTime'); summary(TT) RowTimes: RestorationTime: 1468x1 datetime Values: Min 2002-02-07 16:50 Median 2010-03-31 10:54 Max 2042-09-18 23:31 NumMissing 29 Variables: Region: 1468x1 cell array of character vectors OutageTime: 1468x1 datetime Values: Min 2002-02-01 12:18 Median 2010-03-18 21:05 Max 2014-01-15 02:41 Loss: 1468x1 double Values: Min 0 Median 180.26 Max 23418 NumMissing 604 Customers: 1468x1 double Values: Min 0 Median 75765 Max 5.9689e+06 NumMissing 328 Cause: 1468x1 cell array of character vectors
从电子表格文件创建时间表并格式化输入数据
从电子表格文件创建一个时间表,并格式化输入数据。
例如,从文件 quarterlyFinances1999To2019.csv 创建一个时间表,指定时间戳的开始日期和每个时间戳之间的时间,并从数据中删除“$”符号。
如图所示:

以时间表形式读取文件 quarterlyFinances1999To2019.csv 中的数据。将连续行时间之间的时间长度指定为一个日历季度,从 1999 年 1 月 1 日开始。将 'VariableNamingRule' 设置为 preserve 以保留变量名称中的空白,并将 'TrimNonNumeric' 设置为 true 以删除数据中数值前的“$”符号。
TT = readtimetable("quarterlyFinances1999To2019.csv","TimeStep", calquarters(1),"StartTime", datetime(1999, 1, 1),... "VariableNamingRule", "preserve", "TrimNonNumeric", true);
显示数据的摘要。
讯享网summary(TT) RowTimes: Time: 80x1 datetime Values: Min 01-Jan-1999 Median 16-Nov-2008 Max 01-Oct-2018 Variables: Net Sales: 80x1 double Values: Min 35066 Median 1.0407e+05 Max 1.7684e+05 Cost of Sales: 80x1 double Values: Min 18106 Median 48624 Max 77742 Gross Margin: 80x1 double Values: Min 14563 Median 56719 Max 99097 Research and Development Expenses: 80x1 double Values: Min 4904.9 Median 24637 Max 45234 Administrative Expenses: 80x1 double Values: Min 1047.4 Median 2015.3 Max 2811.5 Total Operating Expenses: 80x1 double Values: Min 5992.5 Median 26518 Max 48045 Net Income: 80x1 double Values: Min 7634.3 Median 28586 Max 51051 Total Shares: 80x1 double Values: Min 822 Median 1820.5 Max 2710 Earnings per Share: 80x1 double Values: Min 6.52 Median 15.515 Max 24.62
提示
- 使用 XPath 选择器指定要导入 XML 输入文档的哪些元素。例如,假设您要导入 XML 文件 myFile.xml,该文件具有以下结构:
<data> <table category="ones"> <var>1</var> <var>2</var> </table> <table category="tens"> <var>10</var> <var>20</var> </table> </data>
下表提供 XPath 选择器名称-值参数(例如 VariableSelectors 或 TableSelector)支持的 XPath 语法。
-
选取操作 语法 示例 结果 选择其名称与您要选择的节点匹配的每个节点,而无论它在文档中的位置如何。 在名称前加两个正斜杠 ( //) 前缀。讯享网data = readtable('myFile.xml', 'VariableSelectors', '//var')data = 4×1 table var ___ 1 2 10 20
读取属于元素节点的属性的值。 在属性前加 at 符号 ( @) 前缀。讯享网data = readtable('myFile.xml', 'VariableSelectors', '//table/@category')data = 2×1 table categoryAttribute _________________ "ones" "tens"
在一组节点中选择一个特定节点。 在方括号 ( []) 中提供要选择的节点的索引。讯享网data = readtable('myFile.xml', 'TableSelector', '//table[1]')data = 2×1 table var ___ 1 2
指定运算的优先级。 在要首先计算的表达式前后添加圆括号。 讯享网data = readtable('myFile.xml', 'VariableSelectors', '//table/var[1]')data = 2×1 table var ___ 1 10
讯享网data = readtable('myFile.xml', 'VariableSelectors', '(//table/var)[1]')data = table var ___ 1

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/47256.html