¿Cómo calcular la media por grupo en R DataFrame?

En este artículo vamos a ver cómo calcular la media por grupo en DataFrame en lenguaje de programación R.

Se puede hacer con dos enfoques:

Creación de conjuntos de datos: primero, creamos un conjunto de datos para que luego podamos aplicar los dos enfoques anteriores y encontrar la media por grupo.

R

# GFG dataset name and creation
GFG <- data.frame(                                            
   Category  = c ("A","B","C","B","C","A","C","A","B"),       
   Frequency= c(9,5,0,2,7,8,1,3,7)                            
)
  
# Prints the dataset
print(GFG)                                                    

Entonces, como puede ver, el código anterior es para crear un conjunto de datos llamado «GFG».

También tiene 2 columnas denominadas Categoría y Frecuencia. Entonces, cuando ejecuta el código anterior en un compilador R, se muestra una tabla como salida como se indica a continuación

Y después de aplicar esos dos enfoques, necesitamos obtener resultados como:

Antes de discutir esos enfoques, primero sepamos cómo obtuvimos los valores de salida:

  • En la Tabla 1, tenemos dos columnas denominadas Categoría y Frecuencia.
  • En Categoría, tenemos algunas variables repetitivas de A, B y C.
  • Valores del grupo A (9,8,3) , valores del grupo B (5,2,7) y valores del grupo C (0,7,1) tomados de la columna Frecuencia .
  • Entonces, para encontrar la media tenemos una fórmula

MEDIA = Suma de términos / Número de términos

  • Por lo tanto, la media por grupo  de cada grupo (A,B,C) sería

Suma:

  • A=9+8+3=20
  • segundo=5+2+7=14
  • C=0+7+1=08

Número de términos:

  • A se repite 3 veces
  • B se repite 3 veces
  • C se repite 3 veces

Media por grupo (A, B, C):

  • A(media) = Suma/Número de términos = 20/3 = 6,67
  • B(media) = Suma/Número de términos = 14/3 = 4,67
  • C(media) = Suma/Número de términos = 8/3 = 2,67

Método 1: Usar la función agregada

Función agregada: divide los datos en subconjuntos, calcula estadísticas de resumen para cada uno y devuelve el resultado en una forma conveniente.

Sintaxis: agregado (x = dataset_Name, by = group_list, FUN = any_function) 

# Sintaxis básica de R de la función agregada

Ahora, sumemos nuestros datos usando una función agregada:

R

GFG <- data.frame(
   Category  = c ("A","B","C","B","C","A","C","A","B"), 
   Frequency= c(9,5,0,2,7,8,1,3,7)
)
  
# Specify data column
aggregate(x= GFG$Frequency,     
            
         # Specify group indicator
         by = list(GFG$Category),      
            
         # Specify function (i.e. mean)
         FUN = mean)

Producción:

En la función agregada anterior, toma tres parámetros 

  • Primero está el nombre del conjunto de datos, en nuestro caso es «GFG».
  • El segundo es el nombre de la columna cuyos valores necesitamos para hacer diferentes grupos, en nuestro caso es la columna Categoría, y está separada en tres grupos (A, B, C). 
  • En el tercer parámetro, debemos mencionar qué función (es decir, media, suma, etc.) debemos realizar en un grupo formado (A, B, C) 

Método 2: Uso del paquete dplyr

dplyr es un paquete que proporciona un conjunto de herramientas para manipular conjuntos de datos de manera eficiente en R

Métodos en el paquete dplyr:

  • mutate() agrega nuevas variables que son funciones de variables existentes
  • select() elige variables en función de sus nombres.
  • filter() elige casos en función de sus valores.
  • summarise() reduce múltiples valores a un solo resumen.
  • arreglar() cambia el orden de las filas.

Instale esta biblioteca:

install.packages("dplyr") 

Cargue esta biblioteca:

library("dplyr")  

Código:

R

# load dplyr library
library("dplyr")                             
GFG <- data.frame(
   Category  = c ("A","B","C","B","C","A","C","A","B"), 
   Frequency= c(9,5,0,2,7,8,1,3,7)
)
  
# Specify data frame
GFG%>%                                        
  
# Specify group indicator, column, function
group_by(Category) %>%                        
summarise_at(vars(Frequency),
              list(name = mean))

Producción:

En el código anterior, primero tomamos nuestro conjunto de datos llamado «GFG» . Con el método group_by() formamos grupos en nuestro caso (A, B, C). summarise_at() tiene dos parámetros primero es una columna en la que aplica la operación dada como el segundo parámetro de la misma.

Publicación traducida automáticamente

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