Esta página es para la versión anterior. La página correspondiente en inglés ha sido eliminada en la versión actual.

Importar datos desde hojas de cálculo de Excel

MATLAB le proporciona las herramientas para importar datos de hojas de cálculo de forma interactiva y mediante programación. Para importar datos de hojas de cálculo de forma interactiva, consulte.Leer datos de hoja de cálculo utilizando herramienta de importación En este ejemplo se muestra cómo importar datos mediante programación utilizando y.readtablespreadsheetDatastore

  • Se usa cuando los datos residen en una hoja de cálculo de un archivo de hoja de cálculo de Excel®.readtable

  • Se usa cuando los datos residen en varias hojas de un archivo de hoja de cálculo o en una colección de varios archivos de hoja de cálculo.spreadsheetDatastore

Los datos utilizados para este ejemplo provienen de vuelos de aerolíneas nacionales de EE. UU. entre 1996 y 2008. La información se organiza en un archivo de Excel® con varias hojas, donde cada hoja contiene datos durante 1 año. Descargue el conjunto de datos completo de.http://stat-computing.org/dataexpo/2009/the-data.html

Importar datos de hoja de cálculo como tabla

Las hojas de cálculo contienen datos estructurados como columnas de números y texto. El tipo de datos MATLAB® proporciona una forma natural de trabajar con datos heterogéneos orientados a columnas.table Puede usar tablas para almacenar nombres de variables o nombres de fila junto con los datos en un solo contenedor.

Utilice la función para importar datos de una hoja de cálculo a una tabla.readtable La tabla resultante, contiene una variable para cada columna de la hoja de cálculo.airlinedata De forma predeterminada, trata los datos de la primera fila del archivo como nombres de variable.readtable

airlinedata = readtable('airlinesmall_subset.xlsx');

Importar subconjunto de datos

Si desea importar solo una parte de los datos de la hoja de cálculo, llame a la función con el par nombre-valor.readtableRange El valor del par nombre-valor especifica el subconjunto de filas y columnas que se importará.Range

airlinedata = readtable('airlinesmall_subset.xlsx','Range','A1:F10');

Importar desde hoja de trabajo específica

De forma predeterminada, Lee los datos de la primera hoja de cálculo.readtable Sin embargo, el par nombre-valor le permite especificar la hoja de trabajo de la que desea leer.Sheet Por ejemplo, los datos de este ejemplo se organizan por hoja de cálculo por año. Importe los datos de una hoja de cálculo específica utilizando el argumento de par nombre-valor para especificar el nombre de la hoja de cálculo.

airlinedata = readtable('airlinesmall_subset.xlsx','Sheet','2008');

Representar variables en tabla con tipos de datos de MATLAB

Durante el proceso de importación, detecta si los datos son de texto o numéricos.readtable Sin embargo, para aprovechar la funcionalidad adicional ofrecida por los tipos de datos nativos de MATLAB®, puede optar por convertir los tipos de datos de las variables. Por ejemplo, la conversión de variables con información de fecha y hora permite realizar cálculos eficientes, comparaciones y visualización con formato de fechas y horas.datetime

Cree una tabla más pequeña con solo las variables que se convertirán, especificando los nombres de variable.

data = airlinedata(:,{'Year','Month','DayofMonth','UniqueCarrier','ArrDelay'}); data(1:5,:)
ans=5×5 table
    Year    Month    DayofMonth    UniqueCarrier    ArrDelay
    ____    _____    __________    _____________    ________

    2008      1          3             'WN'             1   
    2008      1          4             'WN'            -4   
    2008      1          6             'WN'            22   
    2008      1          7             'WN'            24   
    2008      1          8             'WN'           -17   

importa las tres primeras variables (columnas), y, como datos numéricos que contienen información de fecha.readtableYearMonthDayofMonth La cuarta variable se importa como texto, que contiene etiquetas repetidas.UniqueCarrier Por último, la quinta variable se importa como datos numéricos, que contiene información de duración.ArrDelay

Representar, y como tipo, el as, y como en minutos.YearMonthDayofMonthdatetimeUniqueCarriercategoricalArrDelayduration

data.Date = datetime(data.Year,data.Month,data.DayofMonth); % Columns 1 through 3 data.UniqueCarrier = categorical(data.UniqueCarrier); data.ArrDelay = minutes(data.ArrDelay);

Importar datos de la colección de hojas de cálculo

A es útil para procesar arbitrariamente grandes cantidades de datos que se distribuyen entre varios archivos.datastore Tanto la importación de datos como el procesamiento de datos se pueden realizar a través del almacén.

Cree una a partir de una colección de hojas de cálculo y previsualice el contenido.datastoreairlinesmall_subset.xlsx

ds = spreadsheetDatastore('airlinesmall_subset.xlsx'); p = preview(ds); p(:,1:7)
ans=8×7 table
    Year    Month    DayofMonth    DayOfWeek    DepTime    CRSDepTime    ArrTime
    ____    _____    __________    _________    _______    __________    _______

    1996      1          18            4         2117         2120        2305  
    1996      1          12            5         1252         1245        1511  
    1996      1          16            2         1441         1445        1708  
    1996      1           1            1         2258         2300        2336  
    1996      1           4            4         1814         1814        1901  
    1996      1          31            3         1822         1820        1934  
    1996      1          18            4          729          730         841  
    1996      1          26            5         1704         1705        1829  

Seleccione las variables que desea importar especificando nombres de variable.

ds.SelectedVariableNames = {'Year','Month','DayofMonth','UniqueCarrier','ArrDelay'};

Para aprovechar la funcionalidad adicional de los tipos de datos nativos de MATLAB®, puede especificar el tipo de datos de cada variable antes de importar los datos.

Importe como variable categórica.UniqueCarrier

ds.SelectedVariableTypes(4) = {'categorical'}; preview(ds)
ans=8×5 table
    Year    Month    DayofMonth    UniqueCarrier    ArrDelay
    ____    _____    __________    _____________    ________

    1996      1          18             HP              6   
    1996      1          12             HP             11   
    1996      1          16             HP            -13   
    1996      1           1             HP              1   
    1996      1           4             US             -9   
    1996      1          31             US              9   
    1996      1          18             US             -2   
    1996      1          26             NW            -10   

Utilice las funciones o para importar los datos desde el.readreadalldatastore Puede importar los datos, un archivo a la vez utilizando la función o de todos los archivos en el datastore utilizando.readreadall De forma predeterminada, incorpora todas las hojas de cálculo del archivo como una tabla.read

alldata = read(ds);

Para controlar la cantidad de datos importados, ajuste la propiedad del almacén de almacenes antes de llamar.ReadSizeread

ds.ReadSize = 'sheet'; data1996 = read(ds); % reads first worksheet data1997 = read(ds); % reads the next worksheet

Leer y procesar datos incrementalmente desde hojas de cálculo

Cuando se trabaja con conjuntos de datos muy grandes, que pueden no caber en la memoria, es útil procesar cada porción incrementalmente como se lee del almacén de datos.

Seleccione y procese los datos de interés de la tabla utilizando las funciones y calcule el retardo de llegada máximo para cada hoja de cálculo.hasdatareadreset

reset(ds) % start reading from the first sheet mdelay = []; while hasdata(ds)     t = read(ds);     m = max(t.ArrDelay);     mdelay = vertcat(mdelay,m); end

Muestra el retardo de llegada máximo para cada año.

year = 1996:2008 ;      mdelayInHours = mdelay/60; % Convert to hours plot(year,mdelayInHours,'-o','LineWidth',2); xlabel('Year') ylabel('Max Delay (hours)') title('Flight Delay Trend by Year')

Se puede utilizar un procesamiento similar del almacén de datos con el marco de trabajo MapReduce en MATLAB®. Para obtener más información, consulte la documentación de MapReduce.