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 mixtos desde archivo de texto

En este ejemplo se muestra cómo utilizar la función para importar texto mixto y datos numéricos en una tabla, especificar los tipos de datos para las variables y, a continuación, anexar una nueva variable a la tabla.readtable

Sample File Overview

El archivo de ejemplo, contiene datos que representan interrupciones de la utilidad eléctrica en los Estados Unidos.outages.csv 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

Read Text File

Importe los datos utilizando y visualice las primeras cinco filas.readtable La función detecta automáticamente el delimitador y los tipos de variables.readtable

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'   

Specify Variable Data Types Before Import

La actualización de los tipos de datos variables a los tipos de datos de MATLAB adecuados puede beneficiar a los datos, en función del tipo de variables del archivo. Por ejemplo, las columnas primera y sexta en son categóricas.outages.csv Al designar estas dos columnas como matrices, puede aprovechar las funciones de MATLAB para procesar datos categóricos.categorical

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

  • Especifique el par nombre-valor enFormatreadtable

  • Establezca la propiedad de las opciones de importación para el archivoVariableTypes

Use el par nombre-valor para especificar los tipos de datos de variables, leer los datos y mostrar las primeras cinco filas.Format En la parte del especificador, el texto entre las llaves describe el formato de los datos de fecha y hora.%{yyyy-MM-dd HH:mm}DformatSpec Los valores especificados en designar:Format

  • Las primeras y últimas columnas del archivo como datos categóricos

  • Segunda y quinta columnas como datos de fecha y hora formateados

  • Las columnas tercera y cuarta 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   

Como alternativa, especifique los tipos de datos para las variables mediante la función de las opciones de importación.setvartype En primer lugar, cree un objeto de opciones de importación para el archivo. El archivo de datos contiene diferentes tipos de variables. Designe las variables primera y última como matrices, las variables segunda y quinta como matrices y las variables restantes como.categoricaldatetimedouble

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

Importe los datos con y, a continuación, visualice las primeras cinco filas.readtableopts

T = readtable('outages.csv',opts); head(T,5) 
ans=5×6 table
     Region           OutageTime          Loss     Customers       RestorationTime            Cause     
    _________    ____________________    ______    __________    ____________________    _______________

    SouthWest    01-Feb-2002 12:18:00    458.98    1.8202e+06    07-Feb-2002 16:50:00    winter storm   
    SouthEast    23-Jan-2003 00:49:00    530.14    2.1204e+05                     NaT    winter storm   
    SouthEast    07-Feb-2003 21:15:00     289.4    1.4294e+05    17-Feb-2003 08:14:00    winter storm   
    West         06-Apr-2004 05:44:00    434.81    3.4037e+05    06-Apr-2004 06:10:00    equipment fault
    MidWest      16-Mar-2002 06:18:00    186.44    2.1275e+05    18-Mar-2002 23:23:00    severe storm   

Append New Variable to Table

La tabla contiene y.TOutageTimeRestorationTime Calcule la duración de cada corte eléctrico y adjunte 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    01-Feb-2002 12:18:00    458.98    1.8202e+06    07-Feb-2002 16:50:00    winter storm       148:32:00
    SouthEast    23-Jan-2003 00:49:00    530.14    2.1204e+05                     NaT    winter storm             NaN
    SouthEast    07-Feb-2003 21:15:00     289.4    1.4294e+05    17-Feb-2003 08:14:00    winter storm       226:59:00
    West         06-Apr-2004 05:44:00    434.81    3.4037e+05    06-Apr-2004 06:10:00    equipment fault     00:26:00
    MidWest      16-Mar-2002 06:18:00    186.44    2.1275e+05    18-Mar-2002 23:23:00    severe storm        65:05:00

Consulte también

| | | | | |

Temas relacionados