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

CAPÍTULO 3. ACCESO A PORCIONES O SUBCONJUNTOS DE DATOS 50
class
(subv)
## [1] "numeric"
El caso de los factores es similar. Se tomará un ejemplo introducido en la
sección 2.4: un factor con ciertos meses de nacimiento:
(Fmes.nacimiento
<-
factor
(
c
(
"Dic"
,
"Feb"
,
"Oct"
,
"Mar"
,
"Feb"
,
"Nov"
,
"Abr"
,
"Dic"
,
"Feb"
,
"Oct"
,
"Dic"
),
levels
=
c
(
"Ene"
,
"Feb"
,
"Mar"
,
"Abr"
,
"May"
,
"Jun"
,
"Jul"
,
"Ago"
,
"Sep"
,
"Oct"
,
"Nov"
,
"Dic"
)))
## [1] Dic Feb Oct Mar Feb Nov Abr Dic Feb Oct Dic
## 12 Levels: Ene Feb Mar Abr May Jun Jul Ago Sep Oct ... Dic
Si se quiere extraer de ahí solamente los elementos comprendidos entre el
dos y el cinco, se hace así:
(sub.Fmes.nacimiento
<-
Fmes.nacimiento[
2
:
5
])
## [1] Feb Oct Mar Feb
## 12 Levels: Ene Feb Mar Abr May Jun Jul Ago Sep Oct ... Dic
Nótese que la salida sigue siendo un factor, con los mismos
Levels
(nive-
les), que el factor original, pero recortado de acuerdo con la operación indicada
en el operador.
Recuérdese que el código
2:5
, en realidad es un vector entero, a saber:
2,
3, 4, 5
; se antoja entonces natural extender la
indexación
, al uso de vectores
de enteros arbitrarios. Esto es, para seleccionar subconjuntos arbitrarios de los
vectores o factores originales. Así por ejemplo, para seleccionar los elementos,
2, 3, y del 5 al 8, tanto en el vector como en el factor de los ejemplos anteriores,
se puede hacer de la siguiente manera:
(sub1.v
<-
v[
c
(
2
,
3
,
5
:
8
)])
## [1] 0.8507 -1.7280 -1.2744 -0.9908 -1.1659 0.2992
(sub1.Fmes.nacimiento
<-
Fmes.nacimiento[
c
(
2
,
3
,
5
:
8
)])
## [1] Feb Oct Feb Nov Abr Dic
## 12 Levels: Ene Feb Mar Abr May Jun Jul Ago Sep Oct ... Dic
Por otra parte, en esta mismo tema, los índices negativos, tienen el signifi-
cado de excluir los elementos señalados por el índice. Así, el complemento de
los subconjuntos anteriores se puede obtener así:
1...,43,44,45,46,47,48,49,50,51,52 54,55,56,57,58,59,60,61,62,63,...198
Powered by FlippingBook