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
table
| addvars
| movevars
| removevars
| splitvars
| mergevars
| inner2outer
| rows2vars