Aerolinea

En esta práctica realizaremos sociograma de un archivo csv de una aerolinea.

Primero instalamos las librerias que usaremos, la estructura es la siguiente:

library("igraph")
## Warning: package 'igraph' was built under R version 4.1.3
## 
## Attaching package: 'igraph'
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union
library("dplyr")
## Warning: package 'dplyr' was built under R version 4.1.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:igraph':
## 
##     as_data_frame, groups, union
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Como siguiente paso, leemos el archivo y guardamos los datos reelevantes en variables, en este caso extraeremos Origen y Destino.

datos <- read.csv("c:/R/AEROLINEA.csv",header = TRUE,sep=",")
Destino<-datos$DESTINO
Origen<-datos$ï..ORIGEN

Para agrupar datos se utiliza group_by y de esta manera podemos seguir aplicando filtros e instrucciones especificas como lo son el orden en que se muestran los datos.

orden<-sort(factor(table(datos$DESTINO)),decreasing = TRUE)
orden
##             MEXICO            TIJUANA        GUADALAJARA          MONTERREY 
##                 49                 35                 31                 29 
##             CANCUN          CHIHUAHUA      CIUDAD JUAREZ         HERMOSILLO 
##                 22                 13                 13                 13 
##           MAZATLAN    SAN LUIS POTOSI           CULIACAN             LA PAZ 
##                 11                 11                 10                 10 
##    PUERTO VALLARTA          QUERETARO             MERIDA          DEL BAJIO 
##                 10                 10                  9                  8 
##           MEXICALI SAN JOSÉ DEL CABO           VERACRUZ         LOS MOCHIS 
##                  8                  8                  8                  7 
##       VILLAHERMOSA     CIUDAD OBREGON             OAXACA            TAMPICO 
##                  7                  6                  6                  6 
##            TORREON   TUXTLA GUTIERREZ           ACAPULCO     AGUASCALIENTES 
##                  6                  6                  5                  5 
##            DURANGO            MORELIA             PUEBLA            REYNOSA 
##                  4                  4                  4                  4 
##  CIUDAD DEL CARMEN          Los Cabos          TAPACHULA             TOLUCA 
##                  3                  3                  3                  3 
##           CHETUMAL             COLIMA           HUATULCO IXTAPA ZIHUATANEJO 
##                  2                  2                  2                  2 
##             LORETO   PUERTO ESCONDIDO              TEPIC          ZACATECAS 
##                  2                  2                  2                  2 
##           CAMPECHE    CIUDAD VICTORIA            COZUMEL    Ixtepec, Oaxaca 
##                  1                  1                  1                  1 
##    LAZARO CARDENAS         MANZANILLO          MATAMOROS         MINATITLAN 
##                  1                  1                  1                  1 
##       NUEVO LAREDO     PIEDRAS NEGRAS            URUAPAN 
##                  1                  1                  1 
## Levels: 1 2 3 4 5 6 7 8 9 10 11 13 22 29 31 35 49
#datos1 = datos %>% group_by(Origen, Destino) %>% summarise(n=n()) %>% arrange(-n)

datos2=orden[1:10]
datos2
##          MEXICO         TIJUANA     GUADALAJARA       MONTERREY          CANCUN 
##              49              35              31              29              22 
##       CHIHUAHUA   CIUDAD JUAREZ      HERMOSILLO        MAZATLAN SAN LUIS POTOSI 
##              13              13              13              11              11 
## Levels: 1 2 3 4 5 6 7 8 9 10 11 13 22 29 31 35 49
g=graph.data.frame(datos,directed=T)

plot.igraph(g,
            edge.curved= F, # Aristas curvas F/T
            edge.color = "black", # Color de aristas
            edge.width = 4,
            edge.arrow.size = 0.25,
            vertex.color="#3256a8",
            vertex.size=8)# Ancho de NODOS