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.

Ventajas de utilizar tablas

Almacene convenientemente datos de tipo mixto en un solo contenedor

Puede utilizar el tipo de datos table para recopilar propiedades de datos de tipo mixto y metadatos, como nombre de variable, nombres de fila, descripciones y unidades variables, en un único contenedor. Las tablas son adecuadas para datos de columna o tabulares que a menudo se almacenan como columnas en un archivo de texto o en una hoja de cálculo. Por ejemplo, puede utilizar una tabla para almacenar datos experimentales, con filas que representen diferentes observaciones y columnas que representen diferentes variables medidas.

Las tablas consisten en filas y variables orientadas a columnas. Cada variable de una tabla puede tener un tipo de datos diferente y un tamaño diferente, pero cada variable debe tener el mismo número de filas.

Por ejemplo, cargue datos de pacientes de muestra.

load patients

A continuación, combine las variables de espacio de trabajo, Systolic y Diastolic en una única variable BloodPressure y convierta la variable de espacio de trabajo, Gender, desde una matriz de vectores de caracteres a una matriz categórica.

BloodPressure = [Systolic Diastolic]; Gender = categorical(Gender);  whos('Gender','Age','Smoker','BloodPressure')
  Name                 Size            Bytes  Class          Attributes    Age                100x1               800  double                      BloodPressure      100x2              1600  double                      Gender             100x1               346  categorical                 Smoker             100x1               100  logical                   

Las variables Age, BloodPressure, Gender y Smoker tienen diferentes tipos de datos y son candidatos para almacenar en una tabla ya que todas tienen el mismo número de filas, 100.

Ahora, crea una tabla a partir de las variables y muestra las primeras cinco filas.

T = table(Gender,Age,Smoker,BloodPressure); T(1:5,:)
ans=5×4 table
    Gender    Age    Smoker    BloodPressure
    ______    ___    ______    _____________

    Male      38     true       124     93  
    Male      43     false      109     77  
    Female    38     false      125     83  
    Female    40     false      117     75  
    Female    49     false      122     80  

La tabla se muestra en un formato tabular con los nombres de las variables en la parte superior.

Cada variable de una tabla es un tipo de datos único. Si agrega una nueva fila a la tabla, Matlab ® fuerza la consistencia del tipo de datos entre los nuevos datos y las variables de tabla correspondientes. Por ejemplo, si intenta agregar información para un nuevo paciente donde la primera columna contiene la edad del paciente en lugar de género, como en la expresión T(end+1,:) = {37,{'Female'},true,[130 84]}, entonces recibirá el error:

Invalid RHS for assignment to a categorical array.

El error se produce porque MATLAB ® no puede asignar datos numéricos, 37, a la matriz categórica, Gender.

Para la comparación de tablas con estructuras, considere la matriz de estructura, StructArray, que equivale a la tabla, T.

StructArray = table2struct(T)
StructArray = 100x1 struct array with fields:
    Gender
    Age
    Smoker
    BloodPressure

Las matrices de estructura organizan registros mediante campos con nombre. El valor de cada campo puede tener un tipo o tamaño de datos diferente. Ahora, muestre los campos con nombre para el primer elemento de StructArray.

StructArray(1)
ans = struct with fields:
           Gender: Male
              Age: 38
           Smoker: 1
    BloodPressure: [124 93]

Los campos de una matriz de estructura son análogos a las variables de una tabla. Sin embargo, a diferencia de las tablas, no se puede aplicar la homogeneidad dentro de un campo. Por ejemplo, puede tener algunos valores de S.Gender que son elementos de array categóricos, Male o Female, otros que son vectores de caracteres, 'Male' o 'Female', y otros que son enteros, 0 o 1.

Ahora considere los mismos datos almacenados en una estructura escalar, con cuatro campos cada uno que contenga una variable de la tabla.

ScalarStruct = struct(...     'Gender',{Gender},...     'Age',Age,...     'Smoker',Smoker,...     'BloodPressure',BloodPressure)
ScalarStruct = struct with fields:
           Gender: [100x1 categorical]
              Age: [100x1 double]
           Smoker: [100x1 logical]
    BloodPressure: [100x2 double]

A diferencia de las tablas, no se puede exigir que los datos sean rectangulares. Por ejemplo, el campo ScalarStruct.Age puede ser de una longitud diferente a la de otros campos.

Una tabla permite mantener la estructura rectangular (como una matriz de estructura) y hacer cumplir la homogeneidad de las variables (como los campos de una estructura escalar). Aunque las matrices de celdas no tienen campos con nombre, tienen muchas de las mismas desventajas que las matrices de estructura y las estructuras escalares. Si tiene datos rectangulares homogéneos en cada variable, considere la posibilidad de utilizar una tabla. A continuación, puede utilizar la indización numérica o denominada, y puede utilizar propiedades de tabla para almacenar metadatos.

Acceso a datos mediante indización numérica o con nombre

Puede indexar en una tabla usando paréntesis, llaves rizadas o indexación de puntos. Los paréntesis permiten seleccionar un subconjunto de los datos de una tabla y preservar el contenedor de la tabla. Las llaves rizadas y la indexación de puntos le permiten extraer datos de una tabla. Dentro de cada método de indexación de tabla, puede especificar las filas o variables a acceso por nombre o por índice numérico.

Considere la tabla de muestra desde arriba. Cada fila de la tabla, T, representa a un paciente diferente. La variable Workspace, LastName, contiene identificadores exclusivos para las filas 100. Agregue nombres de fila a la tabla estableciendo la propiedad RowNames en LastName y muestre las primeras cinco filas de la tabla actualizada.

T.Properties.RowNames = LastName; T(1:5,:)
ans=5×4 table
                Gender    Age    Smoker    BloodPressure
                ______    ___    ______    _____________

    Smith       Male      38     true       124     93  
    Johnson     Male      43     false      109     77  
    Williams    Female    38     false      125     83  
    Jones       Female    40     false      117     75  
    Brown       Female    49     false      122     80  

Además de etiquetar los datos, puede utilizar nombres de filas y variables para acceder a los datos de la tabla. Por ejemplo, use indexación con nombre para mostrar la edad y la presión sanguínea de los pacientes Williams y Brown.

T({'Williams','Brown'},{'Age','BloodPressure'})
ans=2×2 table
                Age    BloodPressure
                ___    _____________

    Williams    38      125     83  
    Brown       49      122     80  

Ahora, utilice indexación numérica para devolver una subtabla equivalente. Devuelve la tercera y quinta fila de las variables segunda y cuarta.

T(3:2:5,2:2:4)
ans=2×2 table
                Age    BloodPressure
                ___    _____________

    Williams    38      125     83  
    Brown       49      122     80  

Con matrices o estructuras de celdas, no tiene la misma flexibilidad para usar indexación de nombres o numéricos.

  • Con una matriz de celdas, debe utilizar strcmp para encontrar datos con nombre deseado y, a continuación, puede indexar en la matriz.

  • Con una estructura escalar o una matriz de estructura, no es posible hacer referencia a un campo por número. Además, con una estructura escalar, no se puede seleccionar fácilmente un subconjunto de variables o un subconjunto de observaciones. Con una matriz de estructura, puede seleccionar un subconjunto de observaciones, pero no puede seleccionar un subconjunto de variables.

  • Con una tabla, puede acceder a los datos por índice con nombre o por índice numérico. Además, puede seleccionar fácilmente un subconjunto de variables y un subconjunto de filas.

Para obtener más información sobre la indexación de tablas, consulte Acceso a datos en una tabla.

Utilizar propiedades de tabla para almacenar metadatos

Además de almacenar datos, las tablas tienen propiedades para almacenar metadatos, como nombres de variables, nombres de fila, descripciones y unidades variables. Puede tener acceso a una propiedad mediante T.Properties.PropName, donde T es el nombre de la tabla y PropName es una de las propiedades de la tabla.

Por ejemplo, agregue una descripción de tabla, descripciones de variables y unidades variables para Age.

T.Properties.Description = 'Simulated Patient Data';  T.Properties.VariableDescriptions = ...     {'Male or Female' ...     '' ...     'true or false' ...     'Systolic/Diastolic'};  T.Properties.VariableUnits{'Age'} = 'Yrs';

Los vectores de caracteres vacíos individuales dentro de la matriz de celdas para VariableDescriptions indican que la variable correspondiente no tiene una descripción. Para obtener más información, consulte la sección Propiedades de table.

Para imprimir un resumen de tabla, utilice la función summary.

summary(T)
Description:  Simulated Patient Data  Variables:      Gender: 100x1 categorical          Description:  Male or Female         Values:              Female       53                Male         47         Age: 100x1 double          Units:  Yrs         Values:              Min        25               Median     39               Max        50        Smoker: 100x1 logical          Description:  true or false         Values:              True        34                False       66         BloodPressure: 100x2 double          Description:  Systolic/Diastolic         Values:                       BloodPressure_1    BloodPressure_2                       _______________    _______________              Min             109                 68                   Median          122               81.5                   Max             138                 99       

Las estructuras y las matrices de celdas no tienen propiedades para almacenar metadatos.

Consulte también

|

Temas relacionados