Extraiga filas de R DataFrame según factores

En este artículo, discutiremos cómo extraer filas del marco de datos en función de factores en el lenguaje de programación R.

Método 1: usar métodos de indexación

Se puede acceder a la columna del marco de datos usando su nombre (df$col-name) o por su índice (df[[ col-indx ]]) para acceder a una columna en particular. Las columnas del marco de datos pueden contener valores como factores por conversión explícita usando el método factor(). A continuación, se puede acceder a las filas específicas mediante métodos de indexación. 

Sintaxis:

df[ df$nombre-col == val , ]

Las filas que satisfagan este valor de condición de columna en particular se devolverán como salida.

Ejemplo: 

R

# declaring a data frame
data_frame = data.frame(col1 = factor(c("A","z","z","c","e")), 
                        col2 = factor(c(4:8)))
  
print ("Original dataframe")
print (data_frame)
  
sapply(data_frame , class)
  
# where column sum is greater than 10
data_frame_mod <- data_frame[data_frame$col1=="z",]
  
print ("Modified dataframe")
print (data_frame_mod)
  
sapply(data_frame_mod , class)

Producción

[1] "Original dataframe"
 col1 col2
1    A    4
2    z    5
3    z    6
4    c    7
5    e    8
   col1     col2
"factor" "factor"
[1] "Modified dataframe"
 col1 col2
2    z    5
3    z    6
   col1     col2
"factor" "factor" 

También se puede acceder a varias filas de nivel de factor mediante el método de indexación. Los valores de la columna de factores también se pueden validar frente a un vector que contiene valores mediante el operador %in%, que se utiliza para comprobar la existencia del valor encontrado en el vector de entrada. Devuelve un valor booleano VERDADERO en caso de que el valor esté contenido en el vector. 

Sintaxis:

valor %in% vec

Ejemplo:

R

# declaring a data frame
data_frame = data.frame(col1 = factor(letters[1:5]), 
                        col2 = factor(c(4:8)))
  
print ("Original dataframe")
print (data_frame)
  
sapply(data_frame , class)
  
# where column sum is greater than 10
data_frame_mod <- data_frame[data_frame$col2 %in% c(4 , 6),]
  
print ("Modified dataframe")
print (data_frame_mod)
sapply(data_frame_mod , class)

Producción

[1] "Original dataframe"
col1 col2
1    a    4
2    b    5
3    c    6
4    d    7
5    e    8
  col1     col2
"factor" "factor"
[1] "Modified dataframe"
col1 col2
1    a    4
3    c    6
  col1     col2
"factor" "factor" 

Método 2: Usar el método subconjunto()

El método subset() en R se usa para devolver las filas que satisfacen las restricciones mencionadas. Tanto los niveles de un solo factor como los de múltiples factores se pueden devolver usando este método. Los números de fila en el marco de datos original se conservan en orden. Los valores de la columna de factores se pueden validar para una condición mencionada. La salida debe almacenarse en una variable para conservar los cambios. 

Sintaxis:

subconjunto (df, condición)

Las condiciones pueden contener operadores lógicos == , != , > , < operadores para comparar los niveles de factores contenidos en las columnas.

Ejemplo:

R

# declaring a data frame
data_frame = data.frame(col1 = factor(letters[1:5]), 
                        col2 = factor(c(4:8)))
  
print ("Original dataframe")
print (data_frame)
  
sapply(data_frame , class)
  
# where column sum is greater than 10
data_frame_mod <- subset(data_frame, col2 %in% c(4 , 6))
print ("Modified dataframe")
print (data_frame_mod)
sapply(data_frame_mod , class)

Producción

[1] "Original dataframe"
 col1 col2
1    a    4
2    b    5
3    c    6
4    d    7
5    e    8
   col1     col2
"factor" "factor"
[1] "Modified dataframe"
 col1 col2
1    a    4
3    c    6
   col1     col2
"factor" "factor" 

Publicación traducida automáticamente

Artículo escrito por mallikagupta90 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 *