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 de archivos de texto

En este ejemplo se muestra cómo utilizar la función readtable para importar datos mixtos de un archivo de texto a una tabla. A continuación, se muestra cómo modificar y analizar los datos de la tabla.

Descripción del archivo de ejemplo

El archivo de ejemplo, outages.csv, contiene datos que representan interrupciones de la utilidad eléctrica en Estados Unidos. Estas son las primeras líneas del archivo:

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

El archivo contiene seis columnas. La primera línea del archivo enumera los títulos de columna de los datos. Estos son los títulos de la columna, junto con una descripción de los datos de esa columna:

  • Region: Valor de texto para una de las cinco regiones donde se produjo cada interrupción eléctrica

  • OutageTime: Fecha y hora en que se inició la interrupción, formateada como año-mes-día hora: minuto

  • Loss: Valor numérico que indica la pérdida total de energía para la interrupción

  • Customers: Valor entero que indica el número de clientes afectados

  • RestorationTime: Fecha y hora en que se restauró la energía, formateada como año-mes-día hora: minuto

  • Cause: Categoría para la causa de la interrupción de la energía, proporcionada como texto.

Especificar el formato de los campos de datos

Cree un vector de caracteres de los especificadores de formato para describir los datos en el archivo de texto. A continuación, puede pasar los especificadores de formato a la función readtable para importar los datos. Dado que outages.csv contiene seis columnas de datos, cree un vector de caracteres que contenga seis especificadores de formato, como '%f' para un número de punto flotante, '%C' para un valor categórico y '%D' para un valor de fecha y hora.

formatSpec = '%C%{yyyy-MM-dd HH:mm}D%f%f%{yyyy-MM-dd HH:mm}D%C'; 

formatSpec le dice a readtable que lea las primeras y últimas columnas del archivo como datos categóricos, las columnas segunda y quinta como datos de fecha y hora formateados, y la tercera y cuarta columnas como valores de coma flotante. Para los especificadores de %{yyyy-MM-dd HH:mm}D , el texto entre las llaves de rizado describe el formato de los datos de fecha y hora.

Leer archivo de texto

Llame a readtable para leer el archivo. Utilice el argumento Delimiter name-value pair para especificar el delimitador. El delimitador predeterminado es una coma. Utilice el argumento Format name-value Pair junto con el valor formatSpec para describir el formato de los campos de datos del archivo.

T = readtable('outages.csv','Delimiter',',', ...     'Format',formatSpec); 

readtable devuelve una tabla que contiene los datos de interrupción.

Visualice las primeras cinco filas y las primeras cuatro variables de la tabla.

T(1:5,1:4) 
 ans =    5x4 table       Region         OutageTime        Loss     Customers      _________    ________________    ______    __________      SouthWest    2002-02-01 12:18    458.98    1.8202e+06     SouthEast    2003-01-23 00:49    530.14    2.1204e+05     SouthEast    2003-02-07 21:15     289.4    1.4294e+05     West         2004-04-06 05:44    434.81    3.4037e+05     MidWest      2002-03-16 06:18    186.44    2.1275e+05  

El tipo de datos contenido en la tabla es mixto. Las variables primera y última son matrices categorical , las variables segunda y quinta son matrices datetime , y las variables restantes son datos numéricos.

Modificar datos importados

Modifique el formato de las columnas DATETIME en T.

T.OutageTime.Format = 'dd-MMM-yyyy HH:mm:ss'; T.RestorationTime.Format = 'dd-MMM-yyyy HH:mm:ss'; 

Visualice las primeras cinco filas y las primeras cuatro variables de la tabla.

T(1:5,1:4) 
 ans =    5x4 table       Region           OutageTime          Loss     Customers      _________    ____________________    ______    __________      SouthWest    01-Feb-2002 12:18:00    458.98    1.8202e+06     SouthEast    23-Jan-2003 00:49:00    530.14    2.1204e+05     SouthEast    07-Feb-2003 21:15:00     289.4    1.4294e+05     West         06-Apr-2004 05:44:00    434.81    3.4037e+05     MidWest      16-Mar-2002 06:18:00    186.44    2.1275e+05  

Anexar a datos importados

Calcule la duración de cada interrupción eléctrica y añada los datos a la tabla.

T.Duration = T.RestorationTime - T.OutageTime; 

Vea las primeras cinco filas de los datos en la columna Duration de T.

T.Duration(1:5) 
 ans =     5x1 duration array     148:32:00          NaN    226:59:00     00:26:00     65:05:00  

Ordenar datos importados

Ordena la tabla por la variable OutageTime . A continuación, vea las primeras cinco filas y las primeras cuatro variables de la tabla ordenada.

T = sortrows(T,'OutageTime','ascend'); T(1:5,1:4) 
 ans =    5x4 table       Region           OutageTime          Loss     Customers      _________    ____________________    ______    __________      SouthWest    01-Feb-2002 12:18:00    458.98    1.8202e+06     MidWest      05-Mar-2002 17:53:00    96.563    2.8666e+05     MidWest      16-Mar-2002 06:18:00    186.44    2.1275e+05     MidWest      26-Mar-2002 01:59:00    388.04    5.6422e+05     MidWest      20-Apr-2002 16:46:00     23141           NaN  

Consulte también

Temas relacionados