Main Content

Importar datos combinados de un archivo de texto a una tabla

Este ejemplo muestra cómo utilizar la funciónreadtablepara importar datos combinados numéricos y de texto a una tabla, especificar los tipos de datos para las variables y luego añadir una nueva variable a la tabla.

Visión general del archivo de muestra

El archivo de muestra,outages.csv, contiene datos que representan cortes de electricidad en los Estados Unidos. Las primeras líneas del archivo son:

Region,OutageTime,Loss,Customers,RestorationTime,Cause

SouthWest,2002-01-20 11:49,672,2902379,2002-01-24 21:58,winter storm

SouthEast,2002-01-30 01:18,796,336436,2002-02-04 11:20,winter storm

SouthEast,2004-02-03 21:17,264.9,107083,2004-02-20 03:37,winter storm

West,2002-06-19 13:39,391.4,378990,2002-06-19 14:27,equipment fault

Leer un archivo de texto

Importe los datos usandoreadtabley muestre las primeras cinco filas. La funciónreadtabledetecta automáticamente el delimitador y los tipos de variable.

T = readtable ('outages.csv'); head(T,5)
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' }

Especificar los tipos de datos de las variables antes de la importación

La actualización de los tipos de datos de las variables a los tipos de datos de MATLAB® correspondientes puede beneficiar a los datos, según el tipo de variables del archivo. Por ejemplo, la primera y la sexta columnas deoutages.csvson categóricas. Designando estas dos columnas como arregloscategorical, se pueden aprovechar las funciones de MATLAB para procesar datos categóricos.

Designe y especifique los tipos de datos de las variables de una de estas maneras:

  • Especifique el par nombre-valor deFormatenreadtable

  • Establezca la propiedadVariableTypesde las opciones de importación del archivo

Utilice el par nombre-valor deFormatpara especificar los tipos de datos de las variables, leer los datos y mostrar las cinco primeras filas. En la parte%{yyyy-MM-dd HH:mm}Ddel especificadorformatSpec, el texto incluido entre las llaves describe el formato de los datos de fecha y hora. Los valores especificados enFormatdesignan:

  • La primera y última columnas del archivo como datos categóricos

  • La segunda y quinta columnas como datos de fecha y hora con formato

  • La tercera y cuarta columnas como valores de punto flotante

formatSpec ='%C%{yyyy-MM-dd HH:mm}D%f%f%{yyyy-MM-dd HH:mm}D%C'; T = readtable('outages.csv','Format',formatSpec); head(T,5)
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

De forma alternativa, especifique los tipos de datos para las variables utilizando la funciónsetvartypede las opciones de importación. Primero, cree un objeto de opciones de importación para el archivo. El archivo de datos contiene diferentes tipos de variables. Designe la primera y última variables como arregloscategorical, la segunda y quinta como arreglosdatetimey las restantes comodouble.

opts = detectImportOptions('outages.csv'); varNames = opts.VariableNames ; varTypes = {'categorical','datetime','double',...'double','datetime','categorical'}; opts = setvartype(opts,varNames,varTypes);

Importe los datos usandoreadtableconoptsy después muestre las primeras cinco filas.

T = readtable ('outages.csv',opts); head(T,5)
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

Añadir una nueva variable a la tabla

La tablaTcontieneOutageTimeyRestorationTime. Calcule la duración de cada corte de electricidad y añada estos datos a la tabla.

T.Duration = T.RestorationTime - T.OutageTime; head(T,5)
Region OutageTime Loss Customers RestorationTime Cause Duration _________ ________________ ______ __________ ________________ _______________ _________ SouthWest 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 winter storm 148:32:00 SouthEast 2003-01-23 00:49 530.14 2.1204e+05 NaT winter storm NaN SouthEast 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 winter storm 226:59:00 West 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 equipment fault 00:26:00 MidWest 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 severe storm 65:05:00

Consulte también

||||||

Temas relacionados