CAPÍTULO 3. ACCESO A PORCIONES O SUBCONJUNTOS DE DATOS 51
(sub2.v
<-
v[
-
c
(
2
,
3
,
5
:
8
)])
## [1] 0.9681 -1.3120 1.1923 0.2267 -0.7172 -2.0667 0.7740
## [8] -1.1338 1.2351 0.3551 0.1593 1.6532 -0.1528 1.0037
(sub2.Fmes.nacimiento
<-
Fmes.nacimiento[
-
c
(
2
,
3
,
5
:
8
)])
## [1] Dic Mar Feb Oct Dic
## 12 Levels: Ene Feb Mar Abr May Jun Jul Ago Sep Oct ... Dic
3.2.1.2. Selección de elementos de acuerdo con una condición
En la sección 2.2.5 en la página 23, se han introducido los operadores lógi-
cos. Haciendo uso de esa noción, se puede por ejemplo, distinguir en el vector
v
, los elementos negativos de aquellos que no lo son, obteniendo un vector de
lógicos, de la siguiente manera:
v
<
0
## [1] FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE
## [10] FALSE TRUE TRUE FALSE TRUE FALSE FALSE FALSE FALSE
## [19] TRUE FALSE
Surge la pregunta: ¿cómo se pueden extraer, con esta información, los ele-
mentos negativos o los positivos del vector original? El lenguaje permite uti-
lizar como índice del operador
[]
, un vector de lógicos en el que se obtendrá
como salida un vector compuesto de los elementos cuyo índice sea
TRUE
. En-
tonces, la respuesta a la pregunta original se puede dar de las siguientes mane-
ras:
# Los negativos:
v[v
<
0
]
## [1] -1.7280 -1.3120 -1.2744 -0.9908 -1.1659 -0.7172 -2.0667
## [8] -1.1338 -0.1528
# Primera forma de obtener los positivos, mediante la
# negacion lógica, con el operador !
v[
!
(v
<
0
)]
## [1] 0.9681 0.8507 0.2992 1.1923 0.2267 0.7740 1.2351 0.3551
## [9] 0.1593 1.6532 1.0037
# Segunda forma de obtener los positivos, mediante el
# operador >=
v[v
>=
0
]
## [1] 0.9681 0.8507 0.2992 1.1923 0.2267 0.7740 1.2351 0.3551
## [9] 0.1593 1.6532 1.0037