¿Cómo filtrar R DataFrame por valores en una columna?

En el lenguaje de programación R, las columnas del marco de datos pueden estar sujetas a restricciones y producir subconjuntos más pequeños. Sin embargo, mientras se aplican las condiciones, se mantienen las siguientes propiedades:

  • Las filas se consideran un subconjunto de la entrada.
  • Las filas del subconjunto aparecen en el mismo orden que el marco de datos original.
  • Las columnas permanecen sin modificar.
  • El número de grupos puede reducirse, según las condiciones.
  • Los atributos del marco de datos se conservan durante el filtro de datos.

Método 1: usar la indexación de tramas de datos 

Se puede hacer referencia a cualquier columna de marco de datos en el lenguaje de programación R a través de su nombre df$col-name o usando su posición de índice en el marco de datos df[col-index]. Los valores de celda de esta columna pueden luego estar sujetos a restricciones, condiciones lógicas o comparativas, y luego se puede obtener un subconjunto de marco de datos. Estas condiciones se aplican al índice de fila del marco de datos para que se devuelvan las filas satisfechas. 

  • Selección basada en una verificación de valores faltantes o NA

Las celdas en el marco de datos pueden contener valores faltantes o NA como sus elementos, y se pueden verificar usando el método is.na() en lenguaje R. 

Ejemplo:

R

# declaring a dataframe
data_frame = data.frame(col1 = c(NA,"b",NA,"e","e") , 
                        col2 = c(0,2,1,4,5), 
                        col3= c(TRUE,FALSE,FALSE,TRUE, TRUE))
  
print ("Original dataframe")
print (data_frame)
  
# checking which values are not NA
data_frame_mod <- data_frame[!is.na(data_frame$col1),]
  
print ("Modified dataframe")
print (data_frame_mod)

Producción

[1] «Trama de datos original»

 col1 col2 col3

1 <NA> 0 VERDADERO

2 b 2 FALSO

3 <NA> 1 FALSO

4 y 4 VERDADERO

5 y 5 VERDADERO

[1] «Marco de datos modificado»

 col1 col2 col3

2 b 2 FALSO

4 y 4 VERDADERO

5 y 5 VERDADERO

  • Selección basada en una sola condición comparativa en una columna

Los valores de columna pueden estar sujetos a restricciones para filtrar y crear subconjuntos de datos. Los valores se pueden asignar a ocurrencias específicas o dentro de un rango. 

Ejemplo:

R

# declaring a dataframe
data_frame = data.frame(col1 = c("b","b","e","e","e") , 
                        col2 = c(0,2,1,4,5), 
                        col3= c(TRUE,FALSE,FALSE,TRUE, TRUE))
  
print ("Original dataframe")
print (data_frame)
  
# checking which columns have col3
# value equivalent to true
data_frame_mod <- data_frame[data_frame$col3==TRUE,]
  
print ("Modified dataframe")
print (data_frame_mod)

Producción

[1] «Trama de datos original»

 col1 col2 col3

1 b 0 VERDADERO

2 b 2 FALSO

3 y 1 FALSO

4 y 4 VERDADERO

5 y 5 VERDADERO

[1] «Marco de datos modificado»

 col1 col2 col3

1 b 0 VERDADERO

4 y 4 VERDADERO

5 y 5 VERDADERO

  • Selección basada en múltiples condiciones comparativas en una columna

Los valores de columna pueden estar sujetos a restricciones para filtrar y crear subconjuntos de datos. Las condiciones se pueden combinar mediante & o | lógicos. operadores. El operador %in% se usa aquí para verificar los valores que coinciden con cualquiera de los valores dentro de un vector específico. 

Ejemplo:

R

# declaring a dataframe
data_frame = data.frame(col1 = c("b","b","d","e","e") , 
                        col2 = c(0,2,1,4,5), 
                        col3= c(TRUE,FALSE,FALSE,TRUE, TRUE))
  
print ("Original dataframe")
print (data_frame)
  
# checking which values of col1 
# are equivalent to b or e
data_frame_mod <- data_frame[data_frame$col1 %in% c("b","e"),]
print ("Modified dataframe")
print (data_frame_mod)

Producción

[1] «Trama de datos original»

 col1 col2 col3

1 b 0 VERDADERO

2 b 2 FALSO

3 d 1 FALSO

4 y 4 VERDADERO

5 y 5 VERDADERO

[1] «Marco de datos modificado»

 col1 col2 col3

1 b 0 VERDADERO

2 b 2 FALSO

4 y 4 VERDADERO

5 y 5 VERDADERO

Método 2: usar la biblioteca dplyr

La biblioteca dplyr se puede instalar y cargar en el espacio de trabajo que se utiliza para realizar la manipulación de datos.

La función filter() se usa para producir un subconjunto del marco de datos, conservando todas las filas que cumplen las condiciones especificadas. El método filter() en R se puede aplicar tanto a datos agrupados como no agrupados. Las expresiones incluyen operadores de comparación (==, >, >= ), operadores lógicos (&, |, !, xor()), operadores de rango (entre(), cerca()), así como verificación de valor NA con los valores de columna. . El marco de datos del subconjunto debe conservarse en una variable separada. 

Sintaxis:

filtro (df, cond)

Parámetro: 

df – El objeto del marco de datos 

cond – La condición para filtrar los datos sobre

Ejemplo:

R

library ("dplyr")
  
# declaring a dataframe
data_frame = data.frame(col1 = c("b","b","d","e","e") , 
                        col2 = c(0,2,1,4,5), 
                        col3= c(TRUE,FALSE,FALSE,TRUE, TRUE))
  
print ("Original dataframe")
print (data_frame)
  
# checking which values of col1 
# are equivalent to b or e
data_frame_mod <- filter(data_frame,col2>1)
  
print ("Modified dataframe")
print (data_frame_mod)

Producción

[1] «Trama de datos original» 

  col1 col2 col3 

1 b 0 VERDADERO 

2 b 2 FALSO 

3 d 1 FALSO 

4 y 4 VERDADERO 

5 y 5 VERDADERO 

[1] «Marco de datos modificado» 

col1 col2 col3 

1 b 2 FALSO 

2 y 4 VERDADERO 

3 y 5 VERDADERO

Además, los valores se pueden verificar usando el operador %in% para hacer coincidir los valores de celda de la columna con los elementos contenidos en el vector especificado de entrada. 

Ejemplo:

R

library ("dplyr")
  
# declaring a dataframe
data_frame = data.frame(col1 = c("b","b","d","e","e") , 
                        col2 = c(0,2,1,4,5), 
                        col3= c(TRUE,FALSE,FALSE,TRUE, TRUE))
  
print ("Original dataframe")
print (data_frame)
  
# checking which values of col1 
# are equivalent to b or e
data_frame_mod <- filter(data_frame,col1 %in% c("b","e"))
print ("Modified dataframe")
print (data_frame_mod)

Producción

[1] «Trama de datos original»

col1 col2 col3

1 b 0 VERDADERO

2 b 2 FALSO

3 d 1 FALSO

4 y 4 VERDADERO

5 y 5 VERDADERO

[1] «Marco de datos modificado»

col1 col2 col3

1 b 0 VERDADERO

2 b 2 FALSO

4 y 4 VERDADERO

5 y 5 VERDADERO

Publicación traducida automáticamente

Artículo escrito por yippeee25 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *