Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Importar datos combinados de un archivo de texto a una tabla

Este ejemplo muestra cómo utilizar la función readtable para 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 usando readtable y muestre las primeras cinco filas. La función readtable detecta automáticamente el delimitador y los tipos de variable.

T = readtable('outages.csv');
head(T,5) % show first 5 rows of table
ans=5×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'   }

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, basándose en el tipo de variables del archivo. Por ejemplo, la primera y la sexta columnas de outages.csv son categóricas. Al designar estas dos columnas como arreglos categorical, 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 de Format en readtable

  • Establezca la propiedad VariableTypes de las opciones de importación del archivo

Utilice el par nombre-valor de Format para 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}D del especificador formatSpec, el texto incluido entre las llaves describe el formato de los datos de fecha y hora. Los valores especificados en Format designan:

  • 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) 
ans=5×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   

De forma alternativa, especifique los tipos de datos para las variables utilizando la función setvartype de 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 arreglos categorical, la segunda y quinta como arreglos datetime y las restantes como double.

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

Importe los datos usando readtable con opts y después muestre las primeras cinco filas.

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

Añadir una nueva variable a la tabla

La tabla T contiene OutageTime y RestorationTime. 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) 
ans=5×7 table
     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