Está en la página 1de 22

Trabajando Con tablas

Almacene convenientemente datos de tipo mixto en un solo contenedor


Puede utilizar el tipo de datos table para recopilar propiedades de datos de tipo mixto y metadatos, como
nombre de variable, nombres de fila, descripciones y unidades variables, en un único contenedor. Las tablas
son adecuadas para datos de columna o tabulares que a menudo se almacenan como columnas en un archivo
de texto o en una hoja de cálculo. Por ejemplo, puede utilizar una tabla para almacenar datos experimentales,
con filas que representen diferentes observaciones y columnas que representen diferentes variables medidas.

Las tablas consisten en filas y variables orientadas a columnas. Cada variable de una tabla puede tener un tipo
de datos diferente y un tamaño diferente, pero cada variable debe tener el mismo número de filas.

Por ejemplo, cargue datos de pacientes de muestra.

load patients
whos

Name Size Bytes Class Attributes

Age 100x1 800 double


BloodPressure 100x2 1600 double
Diastolic 100x1 800 double
Gender 100x1 12212 cell
Height 100x1 800 double
LastName 100x1 12416 cell
Location 100x1 15008 cell
ScalarStruct 1x1 3550 struct
SelfAssessedHealthStatus 100x1 12340 cell
Smoker 100x1 100 logical
StructArray 100x1 72256 struct
Systolic 100x1 800 double
T 100x5 19854 table
T1 100x8 19566 table
Tnew 83x7 17097 table
Weight 100x1 800 double
ans 1x2 16 double
cellPatients 2x8 1928 cell
toDelete 98x1 98 logical

A continuación, combine las variables de espacio de trabajo, Systolic y Diastolic en una única variable
BloodPressure y convierta la variable de espacio de trabajo, Gender, desde una matriz de vectores de
caracteres a una matriz categórica.

BloodPressure = [Systolic Diastolic]; Gender = categorical(Gender);


whos('Gender','Age','Smoker','BloodPressure')

Name Size Bytes Class Attributes

Age 100x1 800 double


BloodPressure 100x2 1600 double
Gender 100x1 346 categorical
Smoker 100x1 100 logical

Las variables Age, BloodPressure, Gender y Smoker tienen diferentes tipos de datos y son candidatos ser
almacenados en una tabla ya que todas tienen el mismo número de filas, 100.

1
Ahora, crea una tabla a partir de las variables y muestra las primeras cinco filas.

T = table(Gender,Age,Smoker,BloodPressure); T(1:5,:)

ans = 5×4 table


Gender Age Smoker BloodPressure

1 Male 38 1 124 93
2 Male 43 0 109 77
3 Female 38 0 125 83
4 Female 40 0 117 75
5 Female 49 0 122 80

La tabla se muestra en un formato tabular con los nombres de las variables en la parte superior.

Cada variable de una tabla es un tipo de datos único. Si agrega una nueva fila a la tabla, Matlab ® fuerza la
consistencia del tipo de datos entre los nuevos datos y las variables de tabla correspondientes. Por ejemplo, si
intenta agregar información para un nuevo paciente donde la primera columna contiene la edad del paciente en
lugar de género, como en la expresión:

T(end+1,:) = {37,{'Female'},true,[130 84]},

entonces recibirá el error:

Invalid RHS for assignment to a categorical array.

El error se produce porque MATLAB ® no puede asignar datos numéricos, 37, a la matriz categórica, Gender.

Una tabla permite mantener la estructura rectangular .

Agregar filas desde la matriz de celdas


Para anexar nuevas filas almacenadas en una matriz de celdas, concatenar verticalmente la matriz de
celdas en el extremo de la tabla. Puede concatenar directamente desde una matriz de celdas cuando tiene
el número correcto de columnas y el contenido de sus celdas puede concatenarse en las variables de tabla
correspondientes.

T1 = table(LastName,Gender,Age,Height,Weight,Smoker,Systolic,Diastolic)

T1 = 100×8 table

LastName Gender Age Height Weight Smoker Systolic

1 'Smith' Male 38 71 176 1 124


2 'Johnson' Male 43 69 163 0 109
3 'Williams' Female 38 64 131 0 125
4 'Jones' Female 40 67 133 0 117
5 'Brown' Female 49 64 119 0 122
6 'Davis' Female 46 68 142 0 121

2
LastName Gender Age Height Weight Smoker Systolic

7 'Miller' Female 33 64 142 1 130


8 'Wilson' Male 40 68 180 0 115
9 'Moore' Male 28 68 183 0 115
10 'Taylor' Female 31 66 132 0 118
11 'Anderson' Female 45 68 128 0 114
12 'Thomas' Female 42 66 137 0 115
13 'Jackson' Male 25 71 174 0 127
14 'White' Male 39 72 202 1 130
15 'Harris' Female 36 65 129 0 114
16 'Martin' Male 48 71 181 1 130
17 'Thompson' Male 32 69 191 1 124
18 'Garcia' Female 27 69 131 1 123
19 'Martinez' Male 37 70 179 0 119
20 'Robinson' Male 50 68 172 0 125
21 'Clark' Female 48 65 133 0 121
22 'Rodriguez' Female 39 64 117 0 123
23 'Lewis' Female 41 62 137 0 114
24 'Lee' Female 44 66 146 1 128
25 'Walker' Female 28 65 123 1 129
26 'Hall' Male 25 70 189 0 114
27 'Allen' Female 39 63 143 0 113
28 'Young' Female 25 63 114 0 125
29 'Hernandez' Male 36 68 166 0 120
30 'King' Male 30 67 186 1 127
31 'Wright' Female 45 70 126 1 134
32 'Lopez' Female 40 66 137 0 121
33 'Hill' Female 25 64 138 0 115
34 'Scott' Male 47 70 187 0 127
35 'Green' Male 44 71 193 0 121
36 'Adams' Female 48 66 137 0 127
37 'Baker' Male 44 71 192 1 136
38 'Gonzalez' Female 35 66 118 0 117
39 'Nelson' Male 33 66 180 1 124
40 'Carter' Female 38 63 128 0 120

3
LastName Gender Age Height Weight Smoker Systolic

41 'Mitchell' Male 39 71 164 1 128


42 'Perez' Male 44 69 183 0 116
43 'Roberts' Male 44 70 169 1 132
44 'Turner' Male 37 70 194 1 137
45 'Phillips' Male 45 67 172 0 117
46 'Campbell' Female 37 65 135 0 116
47 'Parker' Male 30 68 182 0 119
48 'Evans' Female 39 62 121 0 123
49 'Edwards' Male 42 70 158 0 116
50 'Collins' Male 42 67 179 1 124
51 'Stewart' Male 49 68 170 1 129
52 'Sanchez' Female 44 62 136 1 130
53 'Morris' Female 43 64 135 1 132
54 'Rogers' Female 47 66 147 0 117
55 'Reed' Male 50 72 186 1 129
56 'Cook' Female 38 63 124 0 118
57 'Morgan' Female 41 66 134 0 120
58 'Bell' Male 45 70 170 1 138
59 'Murphy' Male 36 71 180 0 117
60 'Bailey' Female 38 68 130 0 113
61 'Rivera' Female 29 63 130 0 122
62 'Cooper' Female 28 65 127 0 115
63 'Richardson' Female 30 67 141 0 120
64 'Cox' Female 28 66 111 0 117
65 'Howard' Female 29 68 134 0 123
66 'Ward' Male 36 71 189 0 123
67 'Torres' Female 45 70 137 0 119
68 'Peterson' Female 32 60 136 0 110
69 'Gray' Female 31 64 130 0 121
70 'Ramirez' Female 48 64 137 1 138
71 'James' Male 25 66 186 0 125
72 'Watson' Female 40 64 127 1 122
73 'Brooks' Male 39 72 176 0 120
74 'Kelly' Female 41 65 127 0 117

4
LastName Gender Age Height Weight Smoker Systolic

75 'Sanders' Female 33 67 115 1 125


76 'Price' Male 31 72 178 1 124
77 'Bennett' Female 35 64 131 0 121
78 'Wood' Male 32 68 183 0 118
79 'Barnes' Male 42 66 194 0 120
80 'Ross' Female 48 64 126 0 118
81 'Henderson' Male 34 68 186 0 118
82 'Coleman' Male 39 69 188 0 122
83 'Jenkins' Male 28 69 189 1 134
84 'Perry' Female 29 64 120 0 131
85 'Powell' Female 32 63 132 0 113
86 'Long' Male 39 68 182 1 125
87 'Patterson' Female 37 65 120 1 135
88 'Hughes' Female 49 63 123 1 128
89 'Flores' Female 31 66 141 1 123
90 'Washington' Female 37 65 129 0 122
91 'Butler' Male 38 68 184 1 138
92 'Simmons' Male 45 71 181 0 124
93 'Foster' Female 30 70 124 0 130
94 'Gonzales' Male 48 71 174 0 123
95 'Bryant' Female 48 66 134 0 129
96 'Alexander' Male 25 69 171 1 128
97 'Russell' Male 44 69 188 1 124
98 'Griffin' Male 49 70 186 0 119
99 'Diaz' Male 45 68 172 1 136
100 'Hayes' Male 48 66 177 0 114

size(T1)

ans = 1×2
100 8

cellPatients = {'Eduard','Male',42,70,158,0,116,83; 'Falk','Female',28,62,125,1,120,71};


Tnew = [T1;cellPatients];
size(Tnew)

ans = 1×2
102 8

5
Agregar variable de espacio de trabajo a tabla
Agregue los nombres de los pacientes de la variable de espacio de trabajo LastName antes de la primera
variable de tabla en T. Puede especificar cualquier ubicación de la tabla utilizando el nombre de una variable
cercana a la nueva ubicación. Utilice comillas para referirse a los nombres de las variables de tabla. Sin
embargo, no utilice comillas para argumentos de entrada que sean variables de espacio de trabajo.

T = addvars(T,Location,'Before','Smoker')

T = 100×5 table
Gender Age Location Smoker BloodPressure

1 Male 38 'County Ge... 1 124 93


2 Male 43 'VA Hospital' 0 109 77
3 Female 38 'St. Mary'... 0 125 83
4 Female 40 'VA Hospital' 0 117 75
5 Female 49 'County Ge... 0 122 80
6 Female 46 'St. Mary'... 0 121 70
7 Female 33 'VA Hospital' 1 130 88
8 Male 40 'VA Hospital' 0 115 82
9 Male 28 'St. Mary'... 0 115 78
10 Female 31 'County Ge... 0 118 86
11 Female 45 'County Ge... 0 114 77
12 Female 42 'St. Mary'... 0 115 68
13 Male 25 'VA Hospital' 0 127 74
14 Male 39 'VA Hospital' 1 130 95
15 Female 36 'St. Mary'... 0 114 79
16 Male 48 'VA Hospital' 1 130 92
17 Male 32 'St. Mary'... 1 124 95
18 Female 27 'VA Hospital' 1 123 79
19 Male 37 'County Ge... 0 119 77
20 Male 50 'County Ge... 0 125 76
21 Female 48 'VA Hospital' 0 121 75
22 Female 39 'VA Hospital' 0 123 79
23 Female 41 'VA Hospital' 0 114 88
24 Female 44 'County Ge... 1 128 90
25 Female 28 'County Ge... 1 129 96
26 Male 25 'VA Hospital' 0 114 77

6
Gender Age Location Smoker BloodPressure

27 Female 39 'VA Hospital' 0 113 80


28 Female 25 'County Ge... 0 125 76
29 Male 36 'County Ge... 0 120 83
30 Male 30 'County Ge... 1 127 89
31 Female 45 'VA Hospital' 1 134 92
32 Female 40 'VA Hospital' 0 121 83
33 Female 25 'St. Mary'... 0 115 80
34 Male 47 'St. Mary'... 0 127 84
35 Male 44 'County Ge... 0 121 92
36 Female 48 'VA Hospital' 0 127 83
37 Male 44 'VA Hospital' 1 136 90
38 Female 35 'St. Mary'... 0 117 85
39 Male 33 'St. Mary'... 1 124 90
40 Female 38 'St. Mary'... 0 120 74
41 Male 39 'County Ge... 1 128 92
42 Male 44 'VA Hospital' 0 116 80
43 Male 44 'VA Hospital' 1 132 89
44 Male 37 'VA Hospital' 1 137 96
45 Male 45 'VA Hospital' 0 117 89
46 Female 37 'County Ge... 0 116 77
47 Male 30 'VA Hospital' 0 119 81
48 Female 39 'County Ge... 0 123 76
49 Male 42 'County Ge... 0 116 83
50 Male 42 'County Ge... 1 124 78
51 Male 49 'County Ge... 1 129 95
52 Female 44 'St. Mary'... 1 130 91
53 Female 43 'County Ge... 1 132 91
54 Female 47 'VA Hospital' 0 117 86
55 Male 50 'VA Hospital' 1 129 89
56 Female 38 'VA Hospital' 0 118 79
57 Female 41 'St. Mary'... 0 120 74
58 Male 45 'St. Mary'... 1 138 82
59 Male 36 'VA Hospital' 0 117 76
60 Female 38 'St. Mary'... 0 113 81

7
Gender Age Location Smoker BloodPressure

61 Female 29 'County Ge... 0 122 77


62 Female 28 'VA Hospital' 0 115 73
63 Female 30 'County Ge... 0 120 85
64 Female 28 'County Ge... 0 117 76
65 Female 29 'VA Hospital' 0 123 80
66 Male 36 'St. Mary'... 0 123 80
67 Female 45 'County Ge... 0 119 79
68 Female 32 'County Ge... 0 110 82
69 Female 31 'VA Hospital' 0 121 79
70 Female 48 'County Ge... 1 138 82
71 Male 25 'County Ge... 0 125 75
72 Female 40 'VA Hospital' 1 122 91
73 Male 39 'St. Mary'... 0 120 74
74 Female 41 'St. Mary'... 0 117 78
75 Female 33 'St. Mary'... 1 125 85
76 Male 31 'VA Hospital' 1 124 84
77 Female 35 'County Ge... 0 121 75
78 Male 32 'St. Mary'... 0 118 78
79 Male 42 'County Ge... 0 120 81
80 Female 48 'VA Hospital' 0 118 79
81 Male 34 'St. Mary'... 0 118 85
82 Male 39 'VA Hospital' 0 122 79
83 Male 28 'County Ge... 1 134 82
84 Female 29 'St. Mary'... 0 131 80
85 Female 32 'VA Hospital' 0 113 80
86 Male 39 'County Ge... 1 125 92
87 Female 37 'County Ge... 1 135 92
88 Female 49 'County Ge... 1 128 96
89 Female 31 'VA Hospital' 1 123 87
90 Female 37 'St. Mary'... 0 122 81
91 Male 38 'County Ge... 1 138 90
92 Male 45 'VA Hospital' 0 124 77
93 Female 30 'St. Mary'... 0 130 91
94 Male 48 'County Ge... 0 123 79

8
Gender Age Location Smoker BloodPressure

95 Female 48 'County Ge... 0 129 73


96 Male 25 'County Ge... 1 128 99
97 Male 44 'VA Hospital' 1 124 92
98 Male 49 'County Ge... 0 119 74
99 Male 45 'County Ge... 1 136 93
100 Male 48 'County Ge... 0 114 86

Eliminar filas por número de fila


Elimine las filas 18, 20 y 21 de la tabla.

Tnew([18,20,21],:) = []

Tnew = 99×8 table

LastName Gender Age Height Weight Smoker Systolic

1 'Smith' Male 38 71 176 1 124


2 'Johnson' Male 43 69 163 0 109
3 'Williams' Female 38 64 131 0 125
4 'Jones' Female 40 67 133 0 117
5 'Brown' Female 49 64 119 0 122
6 'Davis' Female 46 68 142 0 121
7 'Miller' Female 33 64 142 1 130
8 'Wilson' Male 40 68 180 0 115
9 'Moore' Male 28 68 183 0 115
10 'Taylor' Female 31 66 132 0 118
11 'Anderson' Female 45 68 128 0 114
12 'Thomas' Female 42 66 137 0 115
13 'Jackson' Male 25 71 174 0 127
14 'White' Male 39 72 202 1 130
15 'Harris' Female 36 65 129 0 114
16 'Martin' Male 48 71 181 1 130
17 'Thompson' Male 32 69 191 1 124
18 'Martinez' Male 37 70 179 0 119
19 'Rodriguez' Female 39 64 117 0 123
20 'Lewis' Female 41 62 137 0 114
21 'Lee' Female 44 66 146 1 128

9
LastName Gender Age Height Weight Smoker Systolic

22 'Walker' Female 28 65 123 1 129


23 'Hall' Male 25 70 189 0 114
24 'Allen' Female 39 63 143 0 113
25 'Young' Female 25 63 114 0 125
26 'Hernandez' Male 36 68 166 0 120
27 'King' Male 30 67 186 1 127
28 'Wright' Female 45 70 126 1 134
29 'Lopez' Female 40 66 137 0 121
30 'Hill' Female 25 64 138 0 115
31 'Scott' Male 47 70 187 0 127
32 'Green' Male 44 71 193 0 121
33 'Adams' Female 48 66 137 0 127
34 'Baker' Male 44 71 192 1 136
35 'Gonzalez' Female 35 66 118 0 117
36 'Nelson' Male 33 66 180 1 124
37 'Carter' Female 38 63 128 0 120
38 'Mitchell' Male 39 71 164 1 128
39 'Perez' Male 44 69 183 0 116
40 'Roberts' Male 44 70 169 1 132
41 'Turner' Male 37 70 194 1 137
42 'Phillips' Male 45 67 172 0 117
43 'Campbell' Female 37 65 135 0 116
44 'Parker' Male 30 68 182 0 119
45 'Evans' Female 39 62 121 0 123
46 'Edwards' Male 42 70 158 0 116
47 'Collins' Male 42 67 179 1 124
48 'Stewart' Male 49 68 170 1 129
49 'Sanchez' Female 44 62 136 1 130
50 'Morris' Female 43 64 135 1 132
51 'Rogers' Female 47 66 147 0 117
52 'Reed' Male 50 72 186 1 129
53 'Cook' Female 38 63 124 0 118
54 'Morgan' Female 41 66 134 0 120
55 'Bell' Male 45 70 170 1 138

10
LastName Gender Age Height Weight Smoker Systolic

56 'Murphy' Male 36 71 180 0 117


57 'Bailey' Female 38 68 130 0 113
58 'Rivera' Female 29 63 130 0 122
59 'Cooper' Female 28 65 127 0 115
60 'Richardson' Female 30 67 141 0 120
61 'Cox' Female 28 66 111 0 117
62 'Howard' Female 29 68 134 0 123
63 'Ward' Male 36 71 189 0 123
64 'Torres' Female 45 70 137 0 119
65 'Peterson' Female 32 60 136 0 110
66 'Gray' Female 31 64 130 0 121
67 'Ramirez' Female 48 64 137 1 138
68 'James' Male 25 66 186 0 125
69 'Watson' Female 40 64 127 1 122
70 'Brooks' Male 39 72 176 0 120
71 'Kelly' Female 41 65 127 0 117
72 'Sanders' Female 33 67 115 1 125
73 'Price' Male 31 72 178 1 124
74 'Bennett' Female 35 64 131 0 121
75 'Wood' Male 32 68 183 0 118
76 'Barnes' Male 42 66 194 0 120
77 'Ross' Female 48 64 126 0 118
78 'Henderson' Male 34 68 186 0 118
79 'Coleman' Male 39 69 188 0 122
80 'Jenkins' Male 28 69 189 1 134
81 'Perry' Female 29 64 120 0 131
82 'Powell' Female 32 63 132 0 113
83 'Long' Male 39 68 182 1 125
84 'Patterson' Female 37 65 120 1 135
85 'Hughes' Female 49 63 123 1 128
86 'Flores' Female 31 66 141 1 123
87 'Washington' Female 37 65 129 0 122
88 'Butler' Male 38 68 184 1 138
89 'Simmons' Male 45 71 181 0 124

11
LastName Gender Age Height Weight Smoker Systolic

90 'Foster' Female 30 70 124 0 130


91 'Gonzales' Male 48 71 174 0 123
92 'Bryant' Female 48 66 134 0 129
93 'Alexander' Male 25 69 171 1 128
94 'Russell' Male 44 69 188 1 124
95 'Griffin' Male 49 70 186 0 119
96 'Diaz' Male 45 68 172 1 136
97 'Hayes' Male 48 66 177 0 114
98 'Eduard' Male 42 70 158 0 116
99 'Falk' Female 28 62 125 1 120

size(Tnew)

ans = 1×2
99 8

La tabla contiene información sobre 99 pacientes ahora.

Eliminar filas por nombre de fila


En primer lugar, especifique la variable de identificadores, LastName, como nombres de fila. A continuación,
elimine la variable, LastName, de Tnew. Por último, utilice el nombre de fila para indexar y eliminar filas.

Tnew.Properties.RowNames

ans =

0×0 empty cell array

Tnew.LastName

ans = 99×1 cell array


{'Smith' }
{'Johnson' }
{'Williams' }
{'Jones' }
{'Brown' }
{'Davis' }
{'Miller' }
{'Wilson' }
{'Moore' }
{'Taylor' }
{'Anderson' }
{'Thomas' }
{'Jackson' }
{'White' }
{'Harris' }
{'Martin' }
{'Thompson' }
{'Martinez' }
{'Rodriguez' }
{'Lewis' }

12
{'Lee' }
{'Walker' }
{'Hall' }
{'Allen' }
{'Young' }
{'Hernandez' }
{'King' }
{'Wright' }
{'Lopez' }
{'Hill' }
{'Scott' }
{'Green' }
{'Adams' }
{'Baker' }
{'Gonzalez' }
{'Nelson' }
{'Carter' }
{'Mitchell' }
{'Perez' }
{'Roberts' }
{'Turner' }
{'Phillips' }
{'Campbell' }
{'Parker' }
{'Evans' }
{'Edwards' }
{'Collins' }
{'Stewart' }
{'Sanchez' }
{'Morris' }
{'Rogers' }
{'Reed' }
{'Cook' }
{'Morgan' }
{'Bell' }
{'Murphy' }
{'Bailey' }
{'Rivera' }
{'Cooper' }
{'Richardson'}
{'Cox' }
{'Howard' }
{'Ward' }
{'Torres' }
{'Peterson' }
{'Gray' }
{'Ramirez' }
{'James' }
{'Watson' }
{'Brooks' }
{'Kelly' }
{'Sanders' }
{'Price' }
{'Bennett' }
{'Wood' }
{'Barnes' }
{'Ross' }
{'Henderson' }
{'Coleman' }
{'Jenkins' }
{'Perry' }
{'Powell' }
{'Long' }
{'Patterson' }
{'Hughes' }

13
{'Flores' }
{'Washington'}
{'Butler' }
{'Simmons' }
{'Foster' }
{'Gonzales' }
{'Bryant' }
{'Alexander' }
{'Russell' }
{'Griffin' }
{'Diaz' }
{'Hayes' }
{'Eduard' }
{'Falk' }

Tnew.Properties.RowNames = Tnew.LastName

Tnew = 99×8 table

LastName Gender Age Height Weight Smoker Systolic

1 Smith 'Smith' Male 38 71 176 1 124


2 Johnson 'Johnson' Male 43 69 163 0 109
3 Williams 'Williams' Female 38 64 131 0 125
4 Jones 'Jones' Female 40 67 133 0 117
5 Brown 'Brown' Female 49 64 119 0 122
6 Davis 'Davis' Female 46 68 142 0 121
7 Miller 'Miller' Female 33 64 142 1 130
8 Wilson 'Wilson' Male 40 68 180 0 115
9 Moore 'Moore' Male 28 68 183 0 115
10 Taylor 'Taylor' Female 31 66 132 0 118
11 Anderson 'Anderson' Female 45 68 128 0 114
12 Thomas 'Thomas' Female 42 66 137 0 115
13 Jackson 'Jackson' Male 25 71 174 0 127
14 White 'White' Male 39 72 202 1 130
15 Harris 'Harris' Female 36 65 129 0 114
16 Martin 'Martin' Male 48 71 181 1 130
17 Thompson 'Thompson' Male 32 69 191 1 124
18 Martinez 'Martinez' Male 37 70 179 0 119
19 Rodriguez 'Rodriguez' Female 39 64 117 0 123
20 Lewis 'Lewis' Female 41 62 137 0 114
21 Lee 'Lee' Female 44 66 146 1 128
22 Walker 'Walker' Female 28 65 123 1 129
23 Hall 'Hall' Male 25 70 189 0 114

14
LastName Gender Age Height Weight Smoker Systolic

24 Allen 'Allen' Female 39 63 143 0 113


25 Young 'Young' Female 25 63 114 0 125
26 Hernandez 'Hernandez' Male 36 68 166 0 120
27 King 'King' Male 30 67 186 1 127
28 Wright 'Wright' Female 45 70 126 1 134
29 Lopez 'Lopez' Female 40 66 137 0 121
30 Hill 'Hill' Female 25 64 138 0 115
31 Scott 'Scott' Male 47 70 187 0 127
32 Green 'Green' Male 44 71 193 0 121
33 Adams 'Adams' Female 48 66 137 0 127
34 Baker 'Baker' Male 44 71 192 1 136
35 Gonzalez 'Gonzalez' Female 35 66 118 0 117
36 Nelson 'Nelson' Male 33 66 180 1 124
37 Carter 'Carter' Female 38 63 128 0 120
38 Mitchell 'Mitchell' Male 39 71 164 1 128
39 Perez 'Perez' Male 44 69 183 0 116
40 Roberts 'Roberts' Male 44 70 169 1 132
41 Turner 'Turner' Male 37 70 194 1 137
42 Phillips 'Phillips' Male 45 67 172 0 117
43 Campbell 'Campbell' Female 37 65 135 0 116
44 Parker 'Parker' Male 30 68 182 0 119
45 Evans 'Evans' Female 39 62 121 0 123
46 Edwards 'Edwards' Male 42 70 158 0 116
47 Collins 'Collins' Male 42 67 179 1 124
48 Stewart 'Stewart' Male 49 68 170 1 129
49 Sanchez 'Sanchez' Female 44 62 136 1 130
50 Morris 'Morris' Female 43 64 135 1 132
51 Rogers 'Rogers' Female 47 66 147 0 117
52 Reed 'Reed' Male 50 72 186 1 129
53 Cook 'Cook' Female 38 63 124 0 118
54 Morgan 'Morgan' Female 41 66 134 0 120
55 Bell 'Bell' Male 45 70 170 1 138
56 Murphy 'Murphy' Male 36 71 180 0 117
57 Bailey 'Bailey' Female 38 68 130 0 113

15
LastName Gender Age Height Weight Smoker Systolic

58 Rivera 'Rivera' Female 29 63 130 0 122


59 Cooper 'Cooper' Female 28 65 127 0 115
60 Richardson 'Richardson' Female 30 67 141 0 120
61 Cox 'Cox' Female 28 66 111 0 117
62 Howard 'Howard' Female 29 68 134 0 123
63 Ward 'Ward' Male 36 71 189 0 123
64 Torres 'Torres' Female 45 70 137 0 119
65 Peterson 'Peterson' Female 32 60 136 0 110
66 Gray 'Gray' Female 31 64 130 0 121
67 Ramirez 'Ramirez' Female 48 64 137 1 138
68 James 'James' Male 25 66 186 0 125
69 Watson 'Watson' Female 40 64 127 1 122
70 Brooks 'Brooks' Male 39 72 176 0 120
71 Kelly 'Kelly' Female 41 65 127 0 117
72 Sanders 'Sanders' Female 33 67 115 1 125
73 Price 'Price' Male 31 72 178 1 124
74 Bennett 'Bennett' Female 35 64 131 0 121
75 Wood 'Wood' Male 32 68 183 0 118
76 Barnes 'Barnes' Male 42 66 194 0 120
77 Ross 'Ross' Female 48 64 126 0 118
78 Henderson 'Henderson' Male 34 68 186 0 118
79 Coleman 'Coleman' Male 39 69 188 0 122
80 Jenkins 'Jenkins' Male 28 69 189 1 134
81 Perry 'Perry' Female 29 64 120 0 131
82 Powell 'Powell' Female 32 63 132 0 113
83 Long 'Long' Male 39 68 182 1 125
84 Patterson 'Patterson' Female 37 65 120 1 135
85 Hughes 'Hughes' Female 49 63 123 1 128
86 Flores 'Flores' Female 31 66 141 1 123
87 Washington 'Washington' Female 37 65 129 0 122
88 Butler 'Butler' Male 38 68 184 1 138
89 Simmons 'Simmons' Male 45 71 181 0 124
90 Foster 'Foster' Female 30 70 124 0 130
91 Gonzales 'Gonzales' Male 48 71 174 0 123

16
LastName Gender Age Height Weight Smoker Systolic

92 Bryant 'Bryant' Female 48 66 134 0 129


93 Alexander 'Alexander' Male 25 69 171 1 128
94 Russell 'Russell' Male 44 69 188 1 124
95 Griffin 'Griffin' Male 49 70 186 0 119
96 Diaz 'Diaz' Male 45 68 172 1 136
97 Hayes 'Hayes' Male 48 66 177 0 114
98 Eduard 'Eduard' Male 42 70 158 0 116
99 Falk 'Falk' Female 28 62 125 1 120

Tnew.LastName = [];
Tnew('Smith',:) = [];
size(Tnew)

ans = 1×2
98 7

La tabla ahora tiene una fila menos y una variable menos.

Buscar filas para eliminar


También puede buscar observaciones en la tabla. Por ejemplo, elimine las filas de los pacientes menores de
30 años.

toDelete = Tnew.Age < 30;


Tnew(toDelete,:) = [];
size(Tnew)

ans = 1×2
83 7

La tabla ahora tiene 15 filas menos.

Acceso a datos mediante indización numérica o con nombre

Puede indexar en una tabla usando paréntesis, llaves o indexación de puntos. Los paréntesis permiten
seleccionar un subconjunto de los datos de una tabla y preservar el contenedor de la tabla. Las llaves y la
indexación de puntos le permiten extraer datos de una tabla. Dentro de cada método de indexación de tabla,
puede especificar las filas o variables a acceso por nombre o por índice numérico.

Considere la tabla de muestra desde arriba. Cada fila de la tabla, T, representa a un paciente diferente. La
variable Workspace, LastName, contiene identificadores exclusivos para las filas 100. Agregue nombres de
fila a la tabla estableciendo la propiedad RowNames en LastName y muestre las primeras cinco filas de la tabla
actualizada.

T.Properties.RowNames = LastName;
T(1:5,:)

ans = 5×4 table

17
Gender Age Smoker BloodPressure

1 Smith Male 38 1 124 93


2 Johnson Male 43 0 109 77
3 Williams Female 38 0 125 83
4 Jones Female 40 0 117 75
5 Brown Female 49 0 122 80

Además de etiquetar los datos, puede utilizar nombres de filas y variables para acceder a los datos de la
tabla. Por ejemplo, use indexación con nombre para mostrar la edad y la presión sanguínea de los pacientes
Williams y Brown.

T({'Williams','Brown'},{'Age','BloodPressure'})

ans = 2×2 table


Age BloodPressure

1 Williams 38 125 83
2 Brown 49 122 80

Ahora, utilice indexación numérica para devolver una subtabla equivalente. Devuelve la tercera y quinta fila de
las variables segunda y cuarta.

T(3:2:5,2:2:4)

ans = 2×2 table


Age BloodPressure

1 Williams 38 125 83
2 Brown 49 122 80

almacenar metadatos

Además de almacenar datos, las tablas tienen propiedades para almacenar metadatos, como nombres de
variables, nombres de fila, descripciones y unidades variables. Puede tener acceso a una propiedad mediante
T.Properties.PropName, donde T es el nombre de la tabla y PropName es una de las propiedades de la
tabla.

Por ejemplo, agregue una descripción de tabla, descripciones de variables y unidades variables para Age.

T.Properties.Description = 'Simulated Patient Data';


T

T = 100×4 table
Gender Age Smoker BloodPressure

1 Smith Male 38 1 124 93


2 Johnson Male 43 0 109 77
3 Williams Female 38 0 125 83

18
Gender Age Smoker BloodPressure

4 Jones Female 40 0 117 75


5 Brown Female 49 0 122 80
6 Davis Female 46 0 121 70
7 Miller Female 33 1 130 88
8 Wilson Male 40 0 115 82
9 Moore Male 28 0 115 78
10 Taylor Female 31 0 118 86
11 Anderson Female 45 0 114 77
12 Thomas Female 42 0 115 68
13 Jackson Male 25 0 127 74
14 White Male 39 1 130 95
15 Harris Female 36 0 114 79
16 Martin Male 48 1 130 92
17 Thompson Male 32 1 124 95
18 Garcia Female 27 1 123 79
19 Martinez Male 37 0 119 77
20 Robinson Male 50 0 125 76
21 Clark Female 48 0 121 75
22 Rodriguez Female 39 0 123 79
23 Lewis Female 41 0 114 88
24 Lee Female 44 1 128 90
25 Walker Female 28 1 129 96
26 Hall Male 25 0 114 77
27 Allen Female 39 0 113 80
28 Young Female 25 0 125 76
29 Hernandez Male 36 0 120 83
30 King Male 30 1 127 89
31 Wright Female 45 1 134 92
32 Lopez Female 40 0 121 83
33 Hill Female 25 0 115 80
34 Scott Male 47 0 127 84
35 Green Male 44 0 121 92
36 Adams Female 48 0 127 83
37 Baker Male 44 1 136 90

19
Gender Age Smoker BloodPressure

38 Gonzalez Female 35 0 117 85


39 Nelson Male 33 1 124 90
40 Carter Female 38 0 120 74
41 Mitchell Male 39 1 128 92
42 Perez Male 44 0 116 80
43 Roberts Male 44 1 132 89
44 Turner Male 37 1 137 96
45 Phillips Male 45 0 117 89
46 Campbell Female 37 0 116 77
47 Parker Male 30 0 119 81
48 Evans Female 39 0 123 76
49 Edwards Male 42 0 116 83
50 Collins Male 42 1 124 78
51 Stewart Male 49 1 129 95
52 Sanchez Female 44 1 130 91
53 Morris Female 43 1 132 91
54 Rogers Female 47 0 117 86
55 Reed Male 50 1 129 89
56 Cook Female 38 0 118 79
57 Morgan Female 41 0 120 74
58 Bell Male 45 1 138 82
59 Murphy Male 36 0 117 76
60 Bailey Female 38 0 113 81
61 Rivera Female 29 0 122 77
62 Cooper Female 28 0 115 73
63 Richardson Female 30 0 120 85
64 Cox Female 28 0 117 76
65 Howard Female 29 0 123 80
66 Ward Male 36 0 123 80
67 Torres Female 45 0 119 79
68 Peterson Female 32 0 110 82
69 Gray Female 31 0 121 79
70 Ramirez Female 48 1 138 82
71 James Male 25 0 125 75

20
Gender Age Smoker BloodPressure

72 Watson Female 40 1 122 91


73 Brooks Male 39 0 120 74
74 Kelly Female 41 0 117 78
75 Sanders Female 33 1 125 85
76 Price Male 31 1 124 84
77 Bennett Female 35 0 121 75
78 Wood Male 32 0 118 78
79 Barnes Male 42 0 120 81
80 Ross Female 48 0 118 79
81 Henderson Male 34 0 118 85
82 Coleman Male 39 0 122 79
83 Jenkins Male 28 1 134 82
84 Perry Female 29 0 131 80
85 Powell Female 32 0 113 80
86 Long Male 39 1 125 92
87 Patterson Female 37 1 135 92
88 Hughes Female 49 1 128 96
89 Flores Female 31 1 123 87
90 Washington Female 37 0 122 81
91 Butler Male 38 1 138 90
92 Simmons Male 45 0 124 77
93 Foster Female 30 0 130 91
94 Gonzales Male 48 0 123 79
95 Bryant Female 48 0 129 73
96 Alexander Male 25 1 128 99
97 Russell Male 44 1 124 92
98 Griffin Male 49 0 119 74
99 Diaz Male 45 1 136 93
100 Hayes Male 48 0 114 86

T.Properties.VariableDescriptions = {'Male or Female',' ','true or false','Systolic/Diastolic'}


T.Properties.VariableUnits{'Age'} = 'Yrs';

Los vectores de caracteres vacíos individuales dentro de la matriz de celdas para VariableDescriptions
indican que la variable correspondiente no tiene una descripción..

21
Para imprimir un resumen de tabla, utilice la función summary.

summary(T)

Description: Simulated Patient Data

Variables:

Gender: 100×1 categorical

Properties:
Description: Male or Female
Values:

Female 53
Male 47

Age: 100×1 double

Properties:
Units: Yrs
Values:

Min 25
Median 39
Max 50

Smoker: 100×1 logical

Properties:
Description: true or false
Values:

True 34
False 66

BloodPressure: 100×2 double

Properties:
Description: Systolic/Diastolic
Values:
BloodPressure_1 BloodPressure_2
_______________ _______________

Min 109 68
Median 122 81.5
Max 138 99

22

También podría gustarte