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.

Uso de etiquetas de fila en operaciones de tabla y horario

Las tablas y los calendarios proporcionan formas de etiquetar las filas de los datos. En las tablas, puede etiquetar las filas con nombres. En los horarios, debe etiquetar las filas con fechas, horas o ambos. Los nombres de fila son opcionales para las tablas, pero se requieren tiempos de fila para los horarios. Estas etiquetas de fila forman parte de los metadatos de una tabla o un cronograma. En algunas funciones también puede utilizar etiquetas de fila como variables clave, agrupar variables, y así sucesivamente, al igual que puede utilizar las variables de datos en una tabla o un calendario. Estas funciones son,,,,,, y.sortrowsjoininnerjoinouterjoinvarfunrowfunstackunstack Existen algunas limitaciones en el uso de estas funciones de tabla y en el uso de etiquetas de fila como variables clave.

Ordenar en etiquetas de fila

Por ejemplo, puede ordenar un cronograma en sus tiempos de fila, en una o más de sus variables de datos, o en los tiempos de fila y las variables de datos juntos.

Cree un horario utilizando la función.timetable Un horario tiene tiempos de fila a lo largo de su primera dimensión, etiquetando las filas. Los tiempos de fila son una propiedad del calendario, no una variable de horario.

Date = datetime(2016,7,[10;10;11;11;10;10;11;11]); X = [1;1;1;1;2;2;2;2]; Y = {'a';'b';'a';'b';'a';'b';'a';'b'}; Z = [1;2;3;4;5;6;7;8]; TT = timetable(X,Y,Z,'RowTimes',Date)
TT=8×4 timetable
       Time        X     Y     Z
    ___________    _    ___    _

    10-Jul-2016    1    'a'    1
    10-Jul-2016    1    'b'    2
    11-Jul-2016    1    'a'    3
    11-Jul-2016    1    'b'    4
    10-Jul-2016    2    'a'    5
    10-Jul-2016    2    'b'    6
    11-Jul-2016    2    'a'    7
    11-Jul-2016    2    'b'    8

Cambie el nombre de la primera dimensión. De forma predeterminada, el nombre de la primera dimensión de un cronograma es.Time Puede tener acceso a la propiedad para cambiar el nombre de una dimensión.Properties.DimensionNames

TT.Properties.DimensionNames{1} = 'Date'; TT.Properties.DimensionNames
ans = 1x2 cell array
    {'Date'}    {'Variables'}

Como alternativa, puede especificar los tiempos de fila como primer argumento de entrada, sin especificar.timetable'RowTimes' La función nombra los tiempos de fila, o la primera dimensión, después del primer argumento de entrada, tal como nombra las variables de horario después de los otros argumentos de entrada.timetable

TT = timetable(Date,X,Y,Z)
TT=8×4 timetable
       Date        X     Y     Z
    ___________    _    ___    _

    10-Jul-2016    1    'a'    1
    10-Jul-2016    1    'b'    2
    11-Jul-2016    1    'a'    3
    11-Jul-2016    1    'b'    4
    10-Jul-2016    2    'a'    5
    10-Jul-2016    2    'b'    6
    11-Jul-2016    2    'a'    7
    11-Jul-2016    2    'b'    8

Ordene los horarios por filas. Para ordenar los tiempos de las filas, consulte la primera dimensión del calendario por su nombre.

sortrows(TT,'Date')
ans=8×4 timetable
       Date        X     Y     Z
    ___________    _    ___    _

    10-Jul-2016    1    'a'    1
    10-Jul-2016    1    'b'    2
    10-Jul-2016    2    'a'    5
    10-Jul-2016    2    'b'    6
    11-Jul-2016    1    'a'    3
    11-Jul-2016    1    'b'    4
    11-Jul-2016    2    'a'    7
    11-Jul-2016    2    'b'    8

Ordenar por las variables de datos y. en primer lugar, y luego en.XYsortrowsXY

sortrows(TT,{'X' 'Y'})
ans=8×4 timetable
       Date        X     Y     Z
    ___________    _    ___    _

    10-Jul-2016    1    'a'    1
    11-Jul-2016    1    'a'    3
    10-Jul-2016    1    'b'    2
    11-Jul-2016    1    'b'    4
    10-Jul-2016    2    'a'    5
    11-Jul-2016    2    'a'    7
    10-Jul-2016    2    'b'    6
    11-Jul-2016    2    'b'    8

Ordenar por filas y juntos.X

sortrows(TT,{'Date' 'X'})
ans=8×4 timetable
       Date        X     Y     Z
    ___________    _    ___    _

    10-Jul-2016    1    'a'    1
    10-Jul-2016    1    'b'    2
    10-Jul-2016    2    'a'    5
    10-Jul-2016    2    'b'    6
    11-Jul-2016    1    'a'    3
    11-Jul-2016    1    'b'    4
    11-Jul-2016    2    'a'    7
    11-Jul-2016    2    'b'    8

Utilice etiquetas de fila como agrupar o variables clave

Cuando agrupa filas mediante las funciones, y, puede especificar etiquetas de fila como variables de agrupación.rowfunvarfunstackunstack Al unir tablas o horarios juntos utilizando las funciones, puede especificar etiquetas de fila como variables clave.joininnerjoinouterjoin

Por ejemplo, puede realizar una combinación interna de dos tablas juntas, utilizando nombres de fila y una variable de tabla juntas como variables clave. Una combinación interna mantiene solo las filas de la tabla que coinciden con respecto a las variables clave.

Cree dos tablas de datos de pacientes. Una tabla puede tener nombres de fila a lo largo de su primera dimensión, etiquetando las filas, pero no es necesario que las tenga. Especifique los apellidos de los pacientes como los nombres de las filas de las tablas. Agregue los primeros nombres de los pacientes como variables de tabla.

A = table({'Michael';'Louis';'Alice';'Rosemary';'Julie'},[38;43;45;40;49],...     'VariableNames',{'FirstName' 'Age'},...     'RowNames',{'Garcia' 'Johnson' 'Wu' 'Jones' 'Picard'})
A=5×2 table
               FirstName     Age
               __________    ___

    Garcia     'Michael'     38 
    Johnson    'Louis'       43 
    Wu         'Alice'       45 
    Jones      'Rosemary'    40 
    Picard     'Julie'       49 

B = table({'Michael';'Beverly';'Alice'},...     [64;69;67],...     [119;163;133],...     [122 80; 109 77; 117 75],...     'VariableNames',{'FirstName' 'Height' 'Weight' 'BloodPressure'},...     'RowNames',{'Garcia' 'Johnson' 'Wu'})
B=3×4 table
               FirstName    Height    Weight    BloodPressure
               _________    ______    ______    _____________

    Garcia     'Michael'      64       119       122     80  
    Johnson    'Beverly'      69       163       109     77  
    Wu         'Alice'        67       133       117     75  

Si una tabla tiene nombres de fila, puede indizar en ella por nombre de fila. La indexación por nombres de fila es una forma cómoda de seleccionar filas de una tabla. Índice en el apellido del paciente para recuperar información sobre el paciente.B

B('Garcia',:)
ans=1×4 table
              FirstName    Height    Weight    BloodPressure
              _________    ______    ______    _____________

    Garcia    'Michael'      64       119       122     80  

Realice una unión interna en las dos tablas. Ambas tablas utilizan los apellidos de los pacientes como nombres de fila y contienen los primeros nombres como una variable de tabla. Algunos pacientes en las dos tablas tienen nombres coincidentes pero diferentes nombres. Para asegurarse de que los nombres y apellidos coinciden, utilice los nombres de fila y como variables clave.FirstName Para especificar los nombres de fila como una clave o una variable de agrupación, utilice el nombre de la primera dimensión de la tabla. De forma predeterminada, el nombre de la primera dimensión es.'Row'

C = innerjoin(A,B,'Keys',{'Row','FirstName'})
C=2×5 table
              FirstName    Age    Height    Weight    BloodPressure
              _________    ___    ______    ______    _____________

    Garcia    'Michael'    38       64       119       122     80  
    Wu        'Alice'      45       67       133       117     75  

Si cambia el nombre de la primera dimensión de una tabla, puede hacer referencia a los nombres de fila con ese nombre en lugar de usar.'Row' Realice la misma Unión interna que la anterior, pero utilice un nombre diferente para hacer referencia a los nombres de fila.

Mostrar los nombres de dimensión accediendo a su propiedad.AProperties.DimensionNames

A.Properties.DimensionNames
ans = 1x2 cell array
    {'Row'}    {'Variables'}

Cambie el nombre de la primera dimensión de la tabla utilizando su propiedad.Properties.DimensionNames A continuación, utilice el nuevo nombre como una variable clave.

A.Properties.DimensionNames{1} = 'LastName'; A.Properties.DimensionNames
ans = 1x2 cell array
    {'LastName'}    {'Variables'}

Realice una combinación interna y utilice y como variables clave.ABLastNameFirstName

B.Properties.DimensionNames{1} = 'LastName'; D = innerjoin(A,B,'Keys',{'LastName','FirstName'})
D=2×5 table
              FirstName    Age    Height    Weight    BloodPressure
              _________    ___    ______    ______    _____________

    Garcia    'Michael'    38       64       119       122     80  
    Wu        'Alice'      45       67       133       117     75  

Notas sobre el uso de funciones de tabla y etiquetas de fila

  • No se pueden apilar o desapilar etiquetas de fila mediante las funciones y.stackunstack Sin embargo, puede utilizar etiquetas de fila como variables de agrupación.

  • No se puede realizar una combinación mediante las funciones, o cuando el primer argumento es una tabla y el segundo argumento es un cronograma.joininnerjoinouterjoin Sin embargo, puede realizar una combinación cuando ambos argumentos son tablas, ambos son calendarios o el primer argumento es un horario y el segundo es una tabla.

  • La salida de una operación de combinación puede tener etiquetas de fila si especifica las etiquetas de fila como variables clave. Para obtener más detalles sobre las etiquetas de fila de una operación de combinación, vea la documentación sobre el, y argumentos de la, y funciones.'Keys''LeftKeys''RightKeys'joininnerjoinouterjoin

Consulte también

| | | | | | |