Extracción de datos de un vector según una condición en R

Esto es un caso sencillo pero que puede resultar útil. Se trata de un vector del cuál queremos extraer datos que cumplan cierta condición. Además, eliminaremos los valores NA antes de hacer la operación.

Por ejemplo, nuestro vector, llamado current_full, contiene 8.530.261 elementos:

Un vistazo rápido ya nos muestra que hay muchos valores NA. Vamos a contarlos:

sum(is.na(current_full))

El resultado es de 4.119.260 valores NA:

Vamos a crear un nuevo vector, llamado current, sin los valores NA:

current <- current_full[!is.na(current_full)]

El nuevo vector creado, tiene 4.411.001 elementos, es decir, aproximadamente la mitad del vector original.

Una vez con el vector de datos “limpio”, vamos a extraer en un nuevo vector llamado menores, con todos aquellos valores que sean menor o igual que 1. Si escribimos lo siguiente:

menores <- (current <= 1)

Obtenemos un vector lógico, del mismo tamaño que el original, con valores TRUE/FALSE según se cumpla o no la condición:

Como no es esto lo que buscamos, sino más bien extraer los valores que cumplen la condición dada al vector, debemos ejecutar el siguiente comando:

menores <- current[current <= 1]

Que, efectivamente, nos crea un nuevo vector llamado menores con todos aquellos valores del vector current que han cumplido la condición de ser iguales o menores que uno:

El tamaño de nuestro nuevo vector es de 2.085.916, es decir, que hemos extraído un 47% de los datos del vector current.

Para saber más:
Subsetting. Advanced R.
Estructuras de datos en R.
Introducción al procesamiento de datos en R.

Deja una respuesta