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