2015-02-18

Distribución de frecuencias relativas en R

Title Volvemos a tratar el tema de la distribución de frecuencias en R. Anteriormente construimos una tabla con la frecuencia absoluta. En esta ocasión construimos una tabla con la frecuencia relativa.

Ejemplo hflights

Emplearemos los datos incluidos en el paquete hflights. Es un data frame de 227.496 filas y 21 columnas que contiene información sobre los vuelos que parten de los aeropuertos de Houston: IAH (George Bush Intercontinental) y HOU (Houston Hobby).

Emplearemos la columna Dest. Contiene 227.496 filas con el código del aeropuerto destino del vuelo. Queremos crear una tabla de frecuencias de esta variable categórica.

Frecuencias absolutas

  1. Con la función table, creamos una tabla con el nº de ocurrencias de cada destino.
  2. require(hflights)
    grupos.t1 <- table(hflights$Dest)
    head(grupos.t1, 10)
    
    Automáticamente nos ordena alfabéticamente los resultados.
     ABQ  AEX  AGS  AMA  ANC  ASE  ATL  AUS  AVL  BFL 
    2812  724    1 1297  125  125 7886 5022  350  504
    
  3. Ordenamos los resultados de forma descendente por nº de ocurrencias.
  4. grupos.t2 <- sort(grupos.t1, decreasing = TRUE) 
    head(grupos.t2, 10)
    
     DAL  ATL  MSY  DFW  LAX  DEN  ORD  PHX  AUS  SAT 
    9820 7886 6823 6653 6064 5920 5748 5096 5022 4893 
    
    Los tres destinos más frecuentes son: Dallas Love Field Airport (DAL), Atlanta Hartsfield International Airport (ATL) y New Orleans International Airport (MSY).

Frecuencias relativas

  1. Con la función prop.table, creamos una tabla la frecuencia relativa. Esta función requiere como argumento el objeto table, que hemos creado anteriormente.
  2. # Sin ordenar
    prop.table(grupos.t1) # Equivalente a:
     table(hflights$Dest)/length(hflights$Dest)
    # Ordenados
    prop.table(grupos.t2)
    
    Ordena alfabéticamente los resultados y el formato
    # Sin ordenar
             ABQ          AEX          AGS          AMA 
    1.236066e-02 3.182474e-03 4.395682e-06 5.701199e-03 
    
    # Ordenado
           DAL        ATL        MSY        DFW 
    0.04316559 0.03466435 0.02999174 0.02924447
    
  3. Formateamos el resultado, .
  4. rdo <- data.frame(Porcentaje = round(prop.table(grupos.t2), 4)*100)
    head(rdo)
    
        Porcentaje
    DAL       4.32
    ATL       3.47
    MSY       3.00
    DFW       2.92
    LAX       2.67
    DEN       2.60
    

Referencias

No hay comentarios:

Publicar un comentario

Nube de datos