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