¿Cómo calcular frecuencias relativas usando dplyr?

A menudo, es posible que desee calcular las frecuencias relativas / proporciones de valores en una o más columnas de un marco de datos en R.

Afortunadamente, esto es fácil de hacer usando funciones del paquete dplyr . Este tutorial demuestra cómo utilizar estas funciones para calcular frecuencias relativas en el siguiente marco de datos:

# Creamos un Data Frame
df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position = c('G', 'F', 'F', 'G', 'G', 'G', 'F'),
                 points = c(12, 15, 19, 22, 32, 34, 39))

# Mostramos el Data Frame
df

  team position points
1    A        G     12
2    A        F     15
3    A        F     19
4    B        G     22
5    B        G     32
6    B        G     34
7    B        F     39

Ejemplo 1: frecuencia relativa de una sola variable

El siguiente código muestra cómo calcular la frecuencia relativa de cada equipo en el marco de datos:

library(dplyr)

df %>%
  group_by(team) %>%
  summarise(n = n()) %>%
  mutate(freq = n / sum(n))

# A tibble: 2 x 3
  team       n  freq
    
1 A          3 0.429
2 B          4 0.571

Esto nos dice que el equipo A representa el 42,9% de todas las filas en el marco de datos, mientras que el equipo B representa el 57,1% restante de las filas. Observe que juntos suman el 100%.

Relacionado: La guía completa: cómo agrupar y resumir datos en R

Ejemplo 2: frecuencia relativa de múltiples variables

El siguiente código muestra cómo calcular la frecuencia relativa de posiciones por equipo:

library(dplyr)

df %>%
  group_by(team, position) %>%
  summarise(n = n()) %>%
  mutate(freq = n / sum(n))

# A tibble: 4 x 4
# Groups:   team [2]
  team   position     n  freq
       
1 A      F            2 0.667
2 A      G            1 0.333
3 B      F            1 0.250
4 B      G            3 0.750

Esto nos dice que:

  • El 66,7% de los jugadores del equipo A están en la posición F.
  • El 33,3% de los jugadores del equipo A están en la posición G.
  • El 25,0% de los jugadores del equipo A están en la posición F.
  • El 75,0% de los jugadores del equipo B están en la posición G.

Relacionado Cómo usar Mutate para crear nuevas variables en R

Ejemplo 3: Mostrar frecuencias relativas como porcentajes

El siguiente código muestra cómo calcular la frecuencia relativa de posiciones por equipo y cómo mostrar estas frecuencias relativas como porcentajes:

library(dplyr)

df %>%
  group_by(team, position) %>%
  summarise(n = n()) %>%
  mutate(freq = paste0(round(100 * n/sum(n), 0), '%'))

# A tibble: 4 x 4
# Groups:   team [2]
  team   position     n freq 
       
1 A      F            2 67%  
2 A      G            1 33%  
3 B      F            1 25%  
4 B      G            3 75%

Puede encontrar más tutoriales de R aquí .

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario