Cómo filtrar filas en R

Puedes opinar sobre este contenido:
  • 0
  • 0
  • 0
  • 0

A menudo, puede estar interesado en subconjuntos de un marco de datos basado en ciertas condiciones en R. Afortunadamente, esto es fácil de hacer usando la función filter () del paquete dplyr .

biblioteca (dplyr)

Este tutorial explica varios ejemplos de cómo usar esta función en la práctica usando el conjunto de datos dplyr incorporado llamado starwars :

#ver las primeras seis filas del conjunto de datos de Starwars
cabeza (starwars)

# A tibble: 6 x 13
  nombre altura masa color_de_piel color_de_piel color_de_ ojos nacimiento_año género mundo natal
                                   
1 Luke ~ 172 77 rubio azul claro 19 hombre Tatooine 
2 C-3PO 167 75 <NA> amarillo dorado 112 <NA> Tatooine 
3 R2-D2 96 32 <NA> blanco, azul ~ rojo 33 <NA> Naboo    
4 Dardo ~ 202136 ninguno blanco amarillo 41,9 macho Tatooine 
5 Leia ~ 150 49 marrón marrón claro 19 hembra Alderaan 
6 Owen ~ 178120 marrón, gr ~ azul claro 52 macho Tatooine 
# ... con 4 variables más: especies, películas, vehículos,
# naves estelares 

Ejemplo 1: Filtrar filas iguales a algún valor

El siguiente código muestra cómo filtrar el conjunto de datos para las filas donde la variable ‘especie’ es igual a Droid.

starwars%>% filter (especie == ' Droid ')

# A tibble: 5 x 13
  nombre altura masa color_de_piel color_de_piel color_de_ ojos nacimiento_año género mundo natal
                                   
1 C-3PO 167 75 amarillo dorado 112 Tatooine 
2 R2-D2 96 32 blanco, azul ~ rojo 33 Naboo    
3 R5-D4 97 32 blanco, rojo rojo NA Tatooine 
4 IG-88200140 ninguno rojo metálico 15 ninguno        
5 BB8 NA NA ninguno ninguno negro NA ninguno        
# ... con 4 variables más: especies, películas, vehículos,
# naves estelares 

Podemos ver que 5 filas en el conjunto de datos cumplieron con esta condición, como lo indica #A tibble: 5 x 13 .

Ejemplo 2: Filtrar filas con ‘Y’

También podemos filtrar por filas donde la especie es Droid y el color de ojos es rojo:

starwars%>% filter (especie == ' Droid ' & eye_color == ' rojo ')

# A tibble: 3 x 13
  nombre altura masa color_de_piel color_de_piel color_de_ ojos nacimiento_año género mundo natal
                                   
1 R2-D2 96 32 <NA> blanco, azul ~ rojo 33 <NA> Naboo    
2 R5-D4 97 32 <NA> blanco, rojo rojo NA <NA> Tatooine 
3 IG-88200140 ninguno rojo metálico 15 ninguno <NA>      
# ... con 4 variables más: especies, películas, vehículos,
# naves estelares 

Podemos ver que 3 filas del conjunto de datos cumplieron con esta condición.

Ejemplo 3: Filtrar filas usando ‘O’

También podemos filtrar por filas donde la especie es Droid o el color de ojos es rojo:

starwars%>% filter (especie == ' Droid ' | eye_color == ' rojo ')

# A tibble: 7 x 13
  nombre altura masa color_de_piel color_de_piel color_de_ ojos nacimiento_año género mundo natal
                                   
1 C-3PO 167 75 <NA> amarillo dorado 112 <NA> Tatooine 
2 R2-D2 96 32 <NA> blanco, azul ~ rojo 33 <NA> Naboo    
3 R5-D4 97 32 <NA> blanco, rojo rojo NA <NA> Tatooine 
4 IG-88200140 ninguno rojo metálico 15 ninguno <NA>     
5 Bossk 190113 ninguno verde rojo 53 macho Trandosha
6 Nute ~ 191 90 ninguno moteado g ~ rojo NA macho Cato Nei ~
7 BB8 NA NA ninguna ninguna negra NA ninguna <NA>     
# ... con 4 variables más: especies, películas, vehículos,
# naves estelares  

Podemos ver que 7 filas en el conjunto de datos cumplieron con esta condición.

Ejemplo 4: Filtrar filas con valores en una lista

También podemos filtrar por filas donde el color de ojos está en una lista de colores:

starwars%>% filter (eye_color % en% c (' azul ', ' amarillo ', ' rojo '))

# A tibble: 35 x 13
   nombre altura masa color_de_piel color_de_piel color_de_ojos nacimiento_año
                               
 1 Luke ~ 172 77 rubio azul claro 19 hombre  
 2 C-3PO 167 75 <NA> amarillo dorado 112 <NA> 
 3 R2-D2 96 32 <NA> blanco, azul ~ rojo 33 <NA>  
 4 Dardo ~ 202136 ninguno blanco amarillo 41,9 macho  
 5 Owen ~ 178120 marrón, gr ~ azul claro 52 macho  
 6 Beru ~ 165 75 marrón azul claro 47 hembra
 7 R5-D4 97 32 <NA> blanco, rojo rojo NA <NA> 
 8 Anak ~ 188 84 rubio azul claro 41,9 hombre  
 9 Wilh ~ 180 NA castaño rojizo, g ~ azul claro 64 macho  
10 Masticar ~ 228112 marrón desconocido azul 200 macho  
# ... con 25 filas más y 5 variables más: mundo natal, especie,
# películas, vehículos, naves espaciales  

Podemos ver que 35 filas en el conjunto de datos tenían un color de ojos azul, amarillo o rojo.

Relacionado: Cómo utilizar% en% Operador en R (con ejemplos)

Ejemplo 5: Filtrar filas con menor o mayor que

También podemos filtrar filas usando operaciones menores o mayores que en variables numéricas:

# buscar filas en las que la altura sea superior a 250 
starwars%>% filter (altura > 250)

# A tibble: 1 x 13
  nombre altura masa color_de_piel color_de_piel color_de_ ojos nacimiento_año género mundo natal
                                   
1 Yara ~ 264 NA ninguno blanco amarillo NA masculino Quermia  
# ... con 4 variables más: especies, películas, vehículos,
# naves estelares   

# buscar filas donde la altura esté entre 200 y 220 
starwars%>% filter (altura > 200 y altura < 220)

# A tibble: 5 x 13
  nombre altura masa color_de_piel color_de_piel color_de_ ojos nacimiento_año género mundo natal
                                   
1 Dardo ~ 202136 ninguno blanco amarillo 41,9 macho Tatooine 
2 Rugo ~ 206 NA ninguno verde naranja NA macho Naboo    
3 Taun ~ 213 NA ninguno gris negro NA hembra Kamino   
4 Grie ~ 216159 ninguno marrón, blan ~ verde, y ~ NA macho Kalee    
5 Tion ~ 206 80 ninguno gris negro NA macho Utapau   
# ... con 4 variables más: especies, películas, vehículos,
# naves estelares 

# encontrar filas donde la altura esté por encima de la altura promedio
 starwars%>% filter (height >  mean (height, na.rm = TRUE ))

# A tibble: 51 x 13
   nombre altura masa color_de_piel color_de_piel color_de_ojos nacimiento_año
                               
 1 Dardo ~ 202136 ninguno blanco amarillo 41,9 macho  
 2 Owen ~ 178120 marrón, gr ~ azul claro 52 macho  
 3 Bigg ~ 183 84 negro marrón claro 24 macho  
 4 Obi- ~ 182 77 castaño rojizo, w ~ gris azulado claro 57 macho  
 5 Anak ~ 188 84 rubio azul claro 41,9 hombre  
 6 Wilh ~ 180 NA castaño rojizo, g ~ azul claro 64 macho  
 7 Masticar ~ 228112 marrón desconocido azul 200 macho  
 8 Han ~ 180 80 marrón claro marrón 29 macho  
 9 Jabb ~ 175 1358 <NA> verde-tostado ~ naranja 600 herma ~
10 Jek ~ 180110 marrón claro azul NA macho  
# ... con 41 filas más y 5 variables más: mundo natal, especie,
# películas, vehículos, naves espaciales 

Puede encontrar la documentación completa para el filtro () la función aquí .

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

Deja un comentario

Un resumen de cinco números es una forma de resumir un conjunto de datos utilizando los siguientes cinco valores: El…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!