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