Main Content

Añadir, eliminar y reorganizar variables de tabla

Este ejemplo muestra cómo agregar, eliminar y reorganizar variables orientadas a columnas en una tabla. Puede agregar, mover y eliminar variables de tabla con las funciones addvars, movevars y removevars. Como alternativa, puede modificar las variables de tabla usando sintaxis de puntos o indexando en la tabla. Utilice las funciones splitvars y mergevars para separar las variables de varias columnas y combinar distintas variables en una. Finalmente, puede cambiar la orientación de una tabla para que las filas sean variables de una tabla de salida usando la función rows2vars.

También puede modificar las 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 que ha cargado 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 información recogida del cuestionario del paciente y otra 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    

Añadir variables concatenadas de otra tabla

Añada variables a la tabla T concatenándola de forma horizontal 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 de forma horizontal tienen nombres de filas, horzcat concatena las tablas haciendo coincidir los nombres de las filas. De esta forma, las tablas deben tener los mismos nombres de filas, pero el orden es indiferente.

Añadir una variable del área de trabajo a una tabla

Añada los nombres de los pacientes de la variable LastName del área de trabajo antes de la primera variable de tabla de T. Puede especificar cualquier ubicación en la tabla con el nombre de la variable cerca de la nueva ubicación. Utilice comillas para hacer referencia a los nombres de las variables de tabla. En cambio, no use comillas para 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 la tabla usando números. Por ejemplo, la sintaxis equivalente usando un número para especificar la ubicación es T = addvars(T,LastName,'Before',1).

Añadir variables usando sintaxis de puntos

Una alternativa para añadir nuevas variables de tabla es usar la sintaxis de puntos. Cuando usa la sintaxis de puntos, siempre añade la nueva variable como la última variable de la tabla. Puede añadir una variable de cualquier tipo de datos, siempre que tenga el mismo número de filas que la tabla.

Cree una nueva variable para la presión sanguínea como una concatenación horizontal de las dos variables Systolic y Diastolic. Añádala 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 T tiene 9 variables y 100 filas. Una variable de tabla puede tener varias columnas. Aunque BloodPressure tenga dos columnas, es una variable de tabla.

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

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

Los operadores ./ y .^ del cálculo del BMI indican una división y un exponente elemento por elemento, respectivamente.

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 con la función movevars, de forma que quede después de la variable Weight. Cuando especifique las variables de tabla por su 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 la tabla usando números. Por ejemplo, la sintaxis equivalente usando un número para especificar la ubicación es T = movevars(T,"BMI",'After',6). Suele ser más práctico hacer referencia a las variables por el nombre.

Mover variables de tabla con la indexación

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

Mueva BloodPressure para que esté al lado de 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, suele ser más práctico usar la función movevars.

Eliminar variables

Para eliminar variables de 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  

Eliminar variables usando sintaxis de puntos

Como alternativa, puede eliminar variables usando 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 usando la indexación

También puede eliminar variables usando la indexación 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 combinar variables de tabla

Para dividir variables de tabla de varias columnas y que cada una tenga una columna, 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 la misma forma, puede agrupar variables de tabla relacionadas en una sola usando la función mergevars. Combine Systolic y Diastolic en una variable y llámela 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

Cambiar la orientación de las filas para convertirlas en variables

Puede cambiar la orientación de las filas de una tabla u horario para que sean las variables de la tabla de salida con la función rows2vars. En cambio, si la tabla tiene variables de varias columnas, debe dividirlas antes de llamar a rows2vars.

Cambie la orientación de las filas de T. Especifique que los nombres de los pacientes de T son los nombres de las variables de tabla de 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 usar sintaxis de puntos con T3 para acceder a los datos de los pacientes como un arreglo. En cambio, si los valores de las filas 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