主要内容

convertvars

转换表或时间表变量来指定数据类型

自从R2018b

描述

例子

T2 = convertvars (T1,var,数据类型)将指定的变量转换为指定的数据类型。输入参数T1可以是一个表或时间表。

虽然您可以指定数据类型作为一个数据类型的名称,你也可以指定它作为处理函数。在这种情况下,它是一个处理函数,转换或修改指定的变量var。同样的,var可以包含变量名称或位置的变量T1,也可以是一个函数句柄标识变量。

例子

全部折叠

从电子表格中包含的数据读取一个表在电力中断。表有文本变量显示区域和每个停电原因,datetime变量显示故障和恢复时间和数值变量显示功率损耗的数量和客户的影响。显示前五行。

T1 = readtable (“outages.csv”);头(T1, 5)
地区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{“暴风”}

把变量地区导致分类变量。请注意,分类值不显示引号。

T2 = convertvars (T1, {“地区”,“原因”},“分类”);头(T2, 5)
___________ ______ __________地区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严重的风暴

它可以方便变量转换为数据类型提供不同的功能。例如,现在T2.Region你是一个分类变量,可以使用吗断电的功能做一个饼图。但是你不能使用T1.Region作为输入参数,因为这个变量包含文本,而不是分类数据。

派(T2.Region)

datetime检测哪个表变量数组。然后使用datetime作为参数的函数convertvars函数来指定时区和显示格式。

断电数据读入一个表和显示前三行。

T1 = readtable (“outages.csv”);头(T1, 3)
地区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{“暴风雪”}

datetime数组的T1没有他们的时区设置。如果没有指定表的名称或位置变量,可以检测哪些变量是datetime数组使用吗函数处理isdatetime函数。(一个函数处理是一个变量,它存储一个函数的协会。您可以使用一个函数处理通过另一个函数的函数。例如,指定@isdatetime通过句柄convertvars)。你可以转换所有datetime变量,然后他们有一个时区和不同的显示格式。这种技术是有用的许多转换表变量时,都有相同的数据类型。

调用convertvars函数。修改时区和格式,指定一个匿名函数调用datetime函数与“时区”“格式”名称-值对参数。(一个匿名函数不是存储在程序文件中。它可以用于一个函数,只需要一个简单的定义。在这种情况下,它还允许调用datetime多个输入,而传递convertvars一个函数只接受一个输入,convertvars需要。)显示前三行,显示格式的变化。

modifyTimeZoneAndFormat = @ (x) (datetime (x,“时区”,UTC的,“格式”,“嗯dd, yyyy, HH: mm z”));(T1, T2 = convertvars @isdatetime modifyTimeZoneAndFormat);头(T2, 3)
地区OutageTime损失客户RestorationTime引起_________________ _______________________ ______ __________ _______________________ ___________{“西南”}2月1日,2002年,12:18 UTC 458.98 - 1.8202 e + 06 07年2月,2002年,16:50 UTC{“暴风雪”}{“东南”}1月23日,2003年,00:49 UTC 530.14 - 2.1204 e + 05 NaT{“暴风雪”}{“东南”}07年2月,2003年,21:15 UTC 289.4 - 1.4294 e + 05年2月17日,2003年,08:14 UTC{“暴风雪”}

输入参数

全部折叠

输入表,指定为一个表或时间表。

如果T1是一个时间表,然后你不能使用convertvars将其行乘以,因为行乘以时间表中包含的不变量。行时间的时间表的元数据。

变量的输入表或时间表,指定为一个字符串数组,特征向量,单元阵列的特征向量,模式标量数值数组、逻辑数组或函数处理。

如果var是一个函数处理,那么函数必须接受一个输入参数,确定其数据类型,并返回一个逻辑标量。例如,使用isnumeric函数来检测数值的变量。

例子:(T1, T2 = convertvars“地区”、“分类”)转换的类型变量地区

例子:(T1, T2 = convertvars[1,三6],“字符串”)变量指定的位置转换为字符串数组。

例子:T2 = convertvars (T1、@isnumeric int32)将所有数值型变量转换为32位的整数。

指定的数据类型转换变量,作为特征向量,字符串标量,或函数处理。

如果数据类型是一个函数处理,那么函数必须接受一个输入参数,并将其转换到另一个数据类型。例如,字符串函数将一个输入参数转换为字符串数组。

表显示了许多常见的数据类型的名称。

“单一” 单精度数
“双” 双精度数
“int8” 签署了8位整数
“int16” 签署了16位整数
“int32” 签署了32位整数
“int64” 签署了64位整数
“uint8” Unsigned 8位整数
“uint16” 16位无符号整数
“uint32” 32位无符号整数
“uint64” 未签名的64位整数
“逻辑” 逻辑1(真正的)或0()
“字符串” 字符串数组
“细胞” 单元阵列
“cellstr” 单元阵列的特征向量
“分类” 分类数组
“datetime” Datetime数组
“持续时间” 持续时间数组
“calendarDuration” 日历时间数组

如果您指定“字符”作为一个数据类型convertvars将变量转换为字符数组。最佳实践是避免创建表或时间表字符数组变量。相反,考虑将变量转换为字符串数组,直言数组,数组或单元的特征向量。

例子:(T1, T2 = convertvars OutageTime, datetime)转换的类型变量OutageTime

例子:(T1, T2 = convertvars“地区”,@categorical)将一个变量使用一个函数句柄分类函数。

扩展功能

版本历史

介绍了R2018b