Cómo filtrar filas en R

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/

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!