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.