2014-03-05

Distribución de frecuencias en R

Title

En dos entradas anteriores vimos como crear histogramas y tablas de frecuencias en Excel y Access. En esta entrada haremos lo mismo en R usando los mismos datos.

Manipulación de los datos

datos <- read.csv("datos.txt", sep = ";")  # Fichero en el directorio
hist(datos$año)  # Intentamos crear histograma
## Error in hist.default(datos$año) : 'x' must be numeric
names(datos)  # Genera error por la ñ en Año
## [1] "Id" "Nombre" "Año"
colnames(datos) <- c("id", "nombre", "fecha")  # Renombramos las columnas
names(datos)
## [1] "id" "nombre" "fecha"

Tabla de frecuencias

intervalos <- seq(from = 1913, to = 2013, by = 10) 
frecuencias <- cut(datos$fecha, # Usamos la nueva columna: fechas
                 breaks = intervalos,   
                 dig.lab = 4,   # Nº de dígitos de los intervalos
                 right = FALSE) # Intervalos [a, b). Por defecto: (a, b]
tabla.frec  <- table(frecuencias)   # Crea la tabla de frecuencias
as.data.frame(tabla.frec) # O cbind(tabla.frec) mejoramos el formato
##    frecuencias Freq
## 1  [1913,1923)   16
## 2  [1923,1933)    8
## 3  [1933,1943)   18
## 4  [1943,1953)    3
## 5  [1953,1963)    7
## 6  [1963,1973)   11
## 7  [1973,1983)    6
## 8  [1983,1993)    9
## 9  [1993,2003)   14
## 10 [2003,2013)    8

Histograma

# Creamos histograma por defecto
hist(datos$fecha) 

plot of chunk unnamed-chunk-1

Queremos el formato aproximado al gráfico que creamos en esta entrada.

#Formateamos el histograma
intervalos <- seq(from = 1913, to = 2013, by = 10) 
h <- hist(datos$fecha, 
          breaks = intervalos,  # Añadimos los intervalos
          freq = TRUE, # Representa frecuencias
          right = FALSE, # Intervalos [a, b). Por defecto: (a, b]
          col = rgb(79, 129, 189, max = 255), # Color de las columnas
          border = "white",     # Color del borde
          labels = TRUE,        # Etiquetas de las columnas
          main = "Frecuencias", # Título del gráfico
          xaxt = "n",           # Eliminamos eje x
          yaxt = "n",           # Eliminamos eje y
          xlab = "Años",        # Título del eje x
          ylab = NULL,          # Título del eje y
          ylim = c(0, 20))      # Escala de y (fijamos max en 20)
axis(side = 1, at = intervalos)  # Etiquetas del eje x 

Entradas relacionadas

No hay comentarios:

Publicar un comentario

Nube de datos