lunes, 16 de julio de 2018

Selección de elementos de un vector en R

Ya hemos visto que podemos usar los corchetes [] para obtener uno o varios elementos de un vector. Ahora vamos a conseguir selecciones más interesantes e incluso introduciremos filtros.



Operadores lógicos


<  menor que
>  mayor que
<= menor o igual que
>= mayor o igual que
== igual (comparación)
!= distinto (no igual)


a <- 5
a>4                   # TRUE  
a <- c(1,2,3,4,5)
a<=2                  # TRUE  TRUE FALSE FALSE FALSE
#Creamos el vector b
b <- a>=3
b                     # FALSE FALSE  TRUE  TRUE  TRUE
a*b                   # 0 0 3 4 5
a==b                  # FALSE FALSE FALSE FALSE FALSE
a!=b                  # TRUE TRUE TRUE TRUE TRUE



Selección de elementos de un vector

Observe que en el código siguiente la expresión beneficio[gano] nos permite seleccionar parte de un vector gracias a que en los corchetes [] hemos añadido un filtro o selección. Este filtro no es como hemos visto anteriormente indicando que elementos concretos queremos sino que se realiza introduciendo un vector denominado gano donde todos sus elementos son condiciones lógicas TRUE o FALSE. Esto actúa de filtro y nos devuelve únicamente lo elementos que cumplen ser verdaderos TRUE.


#Asignamos los días de la semana a un vector
dias <- c('Lun','Mar','Mie','Jue','Vie')
#Creamos un vector de perdidas y ganancias
beneficio <- c(-19,-86,125,-343,71)
#Nombramos el vector
names(beneficio) <- dias
beneficio #Imprimimos el vector ya nombrado
gano <- beneficio>0             #Creamos el vector gano con cinco booleanos
print('Vector gano:')
gano
#Creamos un vector solo con los resultados positivos
ganancias <- beneficio[gano] 
print('Estas son las ganancias: ')
ganancias



Operar con valores lógicos

Podemos asignar booleanos a variables o a vectores. Veamos algunas operaciones que se pueden realizar con valores lógicos.


#Asignamos un valor booleano a una variable
a <- TRUE
b <- FALSE
a            #Imprimimos a
b            #Imprimimos b
a*b  # 1*0=0
a*!b # 1*1=1
#Creamos los vectores v y w
v <- c(1,3,5,7,9)
w <- c(100,200,300,400,500)
#Imprimimos v, w y su suma
v
w
v+w
a & b         # AND
a | a         # OR


No hay comentarios:

Publicar un comentario