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/