¿Cómo calcular frecuencias relativas usando dplyr?

Actualizado el 17 de julio de 2024, por Luis Benites.

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/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

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!