Main Content

Agregar, eliminar y reorganizar las variables de una tabla

Este ejemplo muestra cómo agregar, eliminar y reorganizar variables orientadas a columnas en una tabla. Puede agregar, mover y eliminar variables de una tabla mediante las funciones addvars, movevars y removevars. Como alternativas, también puede modificar variables de tabla mediante sintaxis de puntos o mediante la indexación en la tabla. Utilice las funciones splitvars y mergevars para dividir variables de varias columnas y combinar múltiples variables en una sola. Por último, puede reorientar una tabla de manera que las filas de la tabla se conviertan en variables de una tabla de salida mediante la función rows2vars.

También puede modificar variables de tabla utilizando el editor de variables.

Cargar datos de muestra y crear tablas

Cargue arreglos de datos de muestra del archivo MAT patients. Muestre los nombres y los tamaños de las variables cargadas en el área de trabajo.

load patients
whos -file patients
  Name                            Size            Bytes  Class      Attributes

  Age                           100x1               800  double               
  Diastolic                     100x1               800  double               
  Gender                        100x1             11412  cell                 
  Height                        100x1               800  double               
  LastName                      100x1             11616  cell                 
  Location                      100x1             14208  cell                 
  SelfAssessedHealthStatus      100x1             11540  cell                 
  Smoker                        100x1               100  logical              
  Systolic                      100x1               800  double               
  Weight                        100x1               800  double               

Cree dos tablas. Cree una tabla, T, con la información recopilada en un cuestionario para pacientes y cree la tabla, T2, con los datos medidos de los pacientes. Cada tabla tiene 100 filas.

T = table(Age,SelfAssessedHealthStatus,Smoker);
T.SelfAssessedHealthStatus = string(T.SelfAssessedHealthStatus);
T2 = table(Height,Weight,Systolic,Diastolic);

Muestre las primeras cinco filas de cada tabla.

head(T,5)
    Age    SelfAssessedHealthStatus    Smoker
    ___    ________________________    ______

    38           "Excellent"           true  
    43           "Fair"                false 
    38           "Good"                false 
    40           "Fair"                false 
    49           "Good"                false 
head(T2,5)
    Height    Weight    Systolic    Diastolic
    ______    ______    ________    _________

      71       176        124          93    
      69       163        109          77    
      64       131        125          83    
      67       133        117          75    
      64       119        122          80    

Agregar variables concatenadas de otra tabla

Agregue variables a la tabla T concatenándola horizontalmente con T2.

T = [T T2];

Muestre las primeras cinco filas de T.

head(T,5)
    Age    SelfAssessedHealthStatus    Smoker    Height    Weight    Systolic    Diastolic
    ___    ________________________    ______    ______    ______    ________    _________

    38           "Excellent"           true        71       176        124          93    
    43           "Fair"                false       69       163        109          77    
    38           "Good"                false       64       131        125          83    
    40           "Fair"                false       67       133        117          75    
    49           "Good"                false       64       119        122          80    

Ahora la tabla T tiene 7 variables y 100 filas.

Si las tablas que está concatenando horizontalmente tienen nombres de filas, horzcat concatena las tablas haciendo coincidir los nombres de las filas. Por lo tanto, las tablas deben utilizar los mismos nombres de filas, pero el orden de las filas es indiferente.

Agregar variables del área de trabajo a la tabla

Agregue los nombres de los pacientes de la variable del área de trabajo LastName antes de la primera variable de la tabla en T. Puede especificar cualquier ubicación en la tabla mediante el nombre de una variable cercana a la nueva ubicación. Utilice comillas para hacer referencia a los nombres de las variables de la tabla. Sin embargo, no utilice comillas para los argumentos de entrada que sean variables del área de trabajo.

T = addvars(T,LastName,'Before',"Age");
T.LastName = string(T.LastName);
head(T,5)
     LastName     Age    SelfAssessedHealthStatus    Smoker    Height    Weight    Systolic    Diastolic
    __________    ___    ________________________    ______    ______    ______    ________    _________

    "Smith"       38           "Excellent"           true        71       176        124          93    
    "Johnson"     43           "Fair"                false       69       163        109          77    
    "Williams"    38           "Good"                false       64       131        125          83    
    "Jones"       40           "Fair"                false       67       133        117          75    
    "Brown"       49           "Good"                false       64       119        122          80    

También puede especificar ubicaciones en una tabla mediante números. Por ejemplo, la sintaxis equivalente que utiliza un número para especificar la ubicación es T = addvars(T,LastName,'Before',1).

Agregar variables mediante sintaxis de puntos

Una forma alternativa de agregar nuevas variables de tablas es utilizar la sintaxis de puntos. Cuando utilice la sintaxis de puntos, agregue siempre la variable nueva como la última variable de la tabla. Puede agregar una variable que tenga cualquier tipo de datos, siempre y cuando tenga el mismo número de filas que la tabla.

Cree una variable para la presión sanguínea como una concatenación horizontal de las dos variables Systolic y Diastolic. Agréguela a T.

T.BloodPressure = [Systolic Diastolic];
head(T,5)
     LastName     Age    SelfAssessedHealthStatus    Smoker    Height    Weight    Systolic    Diastolic    BloodPressure
    __________    ___    ________________________    ______    ______    ______    ________    _________    _____________

    "Smith"       38           "Excellent"           true        71       176        124          93         124     93  
    "Johnson"     43           "Fair"                false       69       163        109          77         109     77  
    "Williams"    38           "Good"                false       64       131        125          83         125     83  
    "Jones"       40           "Fair"                false       67       133        117          75         117     75  
    "Brown"       49           "Good"                false       64       119        122          80         122     80  

Ahora la tabla T tiene 9 variables y 100 filas. La variable de una tabla puede tener varias columnas. Por lo que, aunque BloodPressure tenga dos columnas, es una sola variable de tabla.

Agregue una nueva variable BMI a la tabla T que contenga el índice de masa corporal de cada paciente. BMI es una función de altura y peso. Cuando calcule el BMI, puede hacer referencia a las variables Weight y Height que están en T.

T.BMI = (T.Weight*0.453592)./(T.Height*0.0254).^2;

Los operadores ./ y .^ en el cálculo del BMI indican, respectivamente, la división y la exponenciación elemento por elemento.

Muestre las primeras cinco filas de la tabla T.

head(T,5)
     LastName     Age    SelfAssessedHealthStatus    Smoker    Height    Weight    Systolic    Diastolic    BloodPressure     BMI  
    __________    ___    ________________________    ______    ______    ______    ________    _________    _____________    ______

    "Smith"       38           "Excellent"           true        71       176        124          93         124     93      24.547
    "Johnson"     43           "Fair"                false       69       163        109          77         109     77      24.071
    "Williams"    38           "Good"                false       64       131        125          83         125     83      22.486
    "Jones"       40           "Fair"                false       67       133        117          75         117     75      20.831
    "Brown"       49           "Good"                false       64       119        122          80         122     80      20.426

Mover variables en una tabla

Mueva la variable de tabla BMI mediante la función movevars, de manera que se sitúe después de la variable Weight. Cuando especifique variables de tabla mediante el nombre, utilice comillas.

T = movevars(T,"BMI",'After',"Weight");
head(T,5)
     LastName     Age    SelfAssessedHealthStatus    Smoker    Height    Weight     BMI      Systolic    Diastolic    BloodPressure
    __________    ___    ________________________    ______    ______    ______    ______    ________    _________    _____________

    "Smith"       38           "Excellent"           true        71       176      24.547      124          93         124     93  
    "Johnson"     43           "Fair"                false       69       163      24.071      109          77         109     77  
    "Williams"    38           "Good"                false       64       131      22.486      125          83         125     83  
    "Jones"       40           "Fair"                false       67       133      20.831      117          75         117     75  
    "Brown"       49           "Good"                false       64       119      20.426      122          80         122     80  

También puede especificar ubicaciones en una tabla mediante números. Por ejemplo, la sintaxis equivalente que utiliza un número para especificar la ubicación es T = movevars(T,"BMI",'After',6). A menudo resulta más práctico hacer referencia a las variables por el nombre.

Mover variables de tabla mediante la indexación

Como alternativa, puede mover variables de tabla mediante la indexación. Puede indexar en una tabla mediante la misma sintaxis que utiliza para indexar en una matriz.

Mueva BloodPressure para que esté situada junto a BMI.

T = T(:,[1:7 10 8 9]);
head(T,5)
     LastName     Age    SelfAssessedHealthStatus    Smoker    Height    Weight     BMI      BloodPressure    Systolic    Diastolic
    __________    ___    ________________________    ______    ______    ______    ______    _____________    ________    _________

    "Smith"       38           "Excellent"           true        71       176      24.547     124     93        124          93    
    "Johnson"     43           "Fair"                false       69       163      24.071     109     77        109          77    
    "Williams"    38           "Good"                false       64       131      22.486     125     83        125          83    
    "Jones"       40           "Fair"                false       67       133      20.831     117     75        117          75    
    "Brown"       49           "Good"                false       64       119      20.426     122     80        122          80    

En una tabla con muchas variables, a menudo es más práctico utilizar la función movevars.

Eliminar variables

Para eliminar variables de una tabla, utilice la función removevars. Elimine las variables de tabla Systolic y Diastolic.

T = removevars(T,["Systolic","Diastolic"]);
head(T,5)
     LastName     Age    SelfAssessedHealthStatus    Smoker    Height    Weight     BMI      BloodPressure
    __________    ___    ________________________    ______    ______    ______    ______    _____________

    "Smith"       38           "Excellent"           true        71       176      24.547     124     93  
    "Johnson"     43           "Fair"                false       69       163      24.071     109     77  
    "Williams"    38           "Good"                false       64       131      22.486     125     83  
    "Jones"       40           "Fair"                false       67       133      20.831     117     75  
    "Brown"       49           "Good"                false       64       119      20.426     122     80  

Elimine variables mediante la sintaxis de puntos

Como alternativa, puede eliminar variables mediante la sintaxis de puntos y la matriz vacía []. Elimine la variable Age de la tabla.

T.Age = [];
head(T,5)
     LastName     SelfAssessedHealthStatus    Smoker    Height    Weight     BMI      BloodPressure
    __________    ________________________    ______    ______    ______    ______    _____________

    "Smith"             "Excellent"           true        71       176      24.547     124     93  
    "Johnson"           "Fair"                false       69       163      24.071     109     77  
    "Williams"          "Good"                false       64       131      22.486     125     83  
    "Jones"             "Fair"                false       67       133      20.831     117     75  
    "Brown"             "Good"                false       64       119      20.426     122     80  

Eliminar variables mediante la indexación

También puede eliminar variables mediante la sintaxis de puntos y la matriz vacía []. Elimine la variable SelfAssessedHealthStatus de la tabla.

T(:,"SelfAssessedHealthStatus") = [];
head(T,5)
     LastName     Smoker    Height    Weight     BMI      BloodPressure
    __________    ______    ______    ______    ______    _____________

    "Smith"       true        71       176      24.547     124     93  
    "Johnson"     false       69       163      24.071     109     77  
    "Williams"    false       64       131      22.486     125     83  
    "Jones"       false       67       133      20.831     117     75  
    "Brown"       false       64       119      20.426     122     80  

Dividir y fusionar variables de tabla

Para dividir variables de tabla multicolumna en variables que tengan una columna cada una, utilice las funciones splitvars. Divida la variable BloodPressure en dos variables.

T = splitvars(T,"BloodPressure",'NewVariableNames',["Systolic","Diastolic"]);
head(T,5)
     LastName     Smoker    Height    Weight     BMI      Systolic    Diastolic
    __________    ______    ______    ______    ______    ________    _________

    "Smith"       true        71       176      24.547      124          93    
    "Johnson"     false       69       163      24.071      109          77    
    "Williams"    false       64       131      22.486      125          83    
    "Jones"       false       67       133      20.831      117          75    
    "Brown"       false       64       119      20.426      122          80    

De forma similar, puede agrupar variables de tabla relacionadas en una única variable mediante la función mergevars. Vuelva a combinar Systolic y Diastolic en una única variable y denomínela BP.

T = mergevars(T,["Systolic","Diastolic"],'NewVariableName',"BP");
head(T,5)
     LastName     Smoker    Height    Weight     BMI          BP    
    __________    ______    ______    ______    ______    __________

    "Smith"       true        71       176      24.547    124     93
    "Johnson"     false       69       163      24.071    109     77
    "Williams"    false       64       131      22.486    125     83
    "Jones"       false       67       133      20.831    117     75
    "Brown"       false       64       119      20.426    122     80

Reorientar filas para que se conviertan en variables

Puede reorientar las filas de una tabla u horario, de manera que se conviertan en las variables de la tabla de salida mediante la función rows2vars. Sin embargo, si la tabla tiene variables multicolumna, debe dividirlas antes de poder llamar a rows2vars.

Reoriente las filas de T. Especifique que los nombres de los pacientes en T sean los nombres de las variables de tabla en la tabla de salida. La primera variable de T3 contiene los nombres de las variables de T. Cada variable restante de T3 contiene los datos de la fila correspondiente de T.

T = splitvars(T,"BP",'NewVariableNames',["Systolic","Diastolic"]);
T3 = rows2vars(T,'VariableNamesSource',"LastName");
T3(:,1:5)
ans=6×5 table
    OriginalVariableNames    Smith     Johnson    Williams    Jones 
    _____________________    ______    _______    ________    ______

        {'Smoker'   }             1         0           0          0
        {'Height'   }            71        69          64         67
        {'Weight'   }           176       163         131        133
        {'BMI'      }        24.547    24.071      22.486     20.831
        {'Systolic' }           124       109         125        117
        {'Diastolic'}            93        77          83         75

Puede utilizar la sintaxis de puntos con T3 para acceder a los datos de los pacientes como un arreglo. Sin embargo, si los valores de fila de una tabla de entrada no se pueden concatenar, las variables de la tabla de salida son arreglos de celdas.

T3.Smith
ans = 6×1

    1.0000
   71.0000
  176.0000
   24.5467
  124.0000
   93.0000

Consulte también

| | | | | | |

Temas relacionados