CAPÍTULO 3. ACCESO A PORCIONES O SUBCONJUNTOS DE DATOS 57
Nótese que en el caso de múltiples columnas o renglones, dado que en su
conjunto no pueden ser simplificados a vectores, el comportamiento del ope-
rador
[]
, es ortogonal y obedece a la regla de entregar siempre un objeto de la
misma clase que el original.
Los mecanismos que habilita el operador
[]
y que se han descrito aquí, tam-
bién permiten la selección de una
ventana
en en interior de ambas estructuras.
mt[
1
:
3
,
4
:
2
]
##
[,1] [,2] [,3]
## [1,] 23 19 15
## [2,] 24 20 16
## [3,] 25 21 17
df.mt[
1
:
3
,
4
:
2
]
##
CUATRO TRES DOS
## uno
23 19 15
## dos
24 20 16
## tres 25 21 17
En este caso, como en el ejemplo anterior, se ha cambiado el orden de la
secuencia de columnas en la
ventana
resultante, lo que, por cierto, resulta más
evidente en el caso del
data frame
por el uso de nombres tanto para columnas
como para renglones
4
.
3.2.2.3. El uso de índices lógicos o condiciones
Al igual que en el caso de los vectores y los factores, este operador admite
índices de tipo lógico, que resultan de la expresión de condiciones, que pueden
ser tan complicadas como se quiera. Se verán aquí algunos ejemplos sencillos
tanto para el caso de matrices como para el caso de
data frames
.
En la matriz y el data frame del ejemplo anterior, el segundo renglón se
puede obtener fácilmente de la siguiente manera:
mt[
2
, ]
## [1] 12 16 20 24 28
df.mt[
2
, ]
## UNO DOS TRES CUATRO CINCO
## dos 12 16 20 24 28
4
Esto no tiene que ver con la clase del objeto, sino con el hecho de que no se han asignado
nombres ni a los renglones, ni a las columnas de la matriz
mt
, en el caso del ejemplo.