El arte de programar en R Un leguaje para la estadística - page 63

CAPÍTULO 3. ACCESO A PORCIONES O SUBCONJUNTOS DE DATOS 60
El uso y el potencial que este tipo de operaciones pueden tener en la prácti-
ca, es algo que sin duda sólo tiene como límite la imaginación del programador
o usuario del lenguaje, y que definitivamente cae dentro de lo que en este libro
se llama
el arte de programar en R
.
3.3. Los operadores
[[]]
y
$
Los operadores
[[]]
y
$
, son más o menos semejantes, aunque éste último
limita su aplicación a las listas y, por consiguiente, también a los
data frames
.
Estos operadores establecen formas de tener acceso a los elementos de las dis-
tintas estructuras mediante los nombres o identificadores asignados a esos ele-
mentos. Si bien es cierto que el operador
[]
, admite también nombres de los
elementos como índices, como se ha mostrado en la sección 2.2.4 en la pági-
na 21, los operadores discutidos en esta sección habilitan formas más flexibles
de tener acceso a los elementos de las estructuras mediante sus nombres, amén
de que ese acceso va a un nivel más
profundo
. Para comprender esto, piénsese
en el siguiente símil: sea la estructura sobre la que actúan los operadores co-
mo una bodega que contiene cajas, que a su vez contienen distintos objetos. En
general, el operador
[]
, podría considerarse como un dispositivo que
mueve
al-
gunas de las cajas a otra, por así decirlo,
sub-bodega
o bodega
más pequeña
, y ese
sería el resultado de la operación; es decir, entrega la
sub-bodega
con las cajas
seleccionadas, mientras que los otros operadores entregan las cajas o incluso el
contenido de éstas.
Amanera de comparación, se dotará a la matriz
mt
, utilizada anteriormente,
de nombres para sus columnas y renglones:
rownames
(mt)
<-
c
(
"uno"
,
"dos"
,
"tres"
,
"cuatro"
)
colnames
(mt)
<-
c
(
"UNO"
,
"DOS"
,
"TRES"
,
"CUATRO"
,
"CINCO"
)
mt
##
UNO DOS TRES CUATRO CINCO
## uno 11 15 19
23 27
## dos 12 16 20
24 28
## tres 13 17 21
25 29
## cuatro 14 16 22 26 30
Aquí, el acceso a renglones y columnas por nombres, mediante el operador
[]
, da resultados
semejantes
tanto en matrices como en
data frames
:
mt[,
"TRES"
]
## uno dos tres cuatro
## 19
20 21 22
df.mt[,
"TRES"
]
1...,53,54,55,56,57,58,59,60,61,62 64,65,66,67,68,69,70,71,72,73,...198
Powered by FlippingBook