¿Cómo calcular frecuencias relativas usando dplyr?

Actualizado por ultima vez el 25 de noviembre de 2022, por Dereck Amesquita.

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/

I’m a Bachelor of Economics gratuaded from the National University of San Agustin. I have experience in Python, R and other languages with aplications in Finance or Econometrics, I also have knowledge of statistics and econometrics. If you need help on some issues you can write to me.

Deja un comentario

Puede usar la siguiente sintaxis para sumar los valores de una columna en un DataFrame de pandas según una condición:…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!