Datos
El primer paso es introducir la información en nuestros datos. Para ello introducimos una tercera columna con la variable línea.
Importación
require(igraph)
estaciones <- read.csv2("estaciones.csv")
Cálculos
g <- graph.data.frame(estaciones, directed = FALSE) # Creamos el igraph
# Indicamos en el output que devuelva ambos: edges y vertices
gsp <- get.shortest.paths(g, from = "Quevedo", to = "O'Donnell", output = "both" )
# Vértices de la ruta
V(g)[gsp$vpath[[1]]]
Vertex sequence:
[1] "Quevedo" "Canal" "Alonso Cano" "Gregorio Marañón"
[5] "Avenida de América""Diego de León" "Manuel Becerra" "O'Donnell"
# Aristas de la ruta
E(g)[gsp$epath[[1]]]
Edge sequence:
[50] Canal -- Quevedo
[169] Alonso Cano -- Canal
[168] Alonso Cano -- Gregorio Marañón
[167] Gregorio Marañón -- Avenida de América
[136] Avenida de América -- Diego de León
[135] Diego de León -- Manuel Becerra
[134] O'Donnell -- Manuel Becerra
# Líneas de la ruta
lineas <- E(g)[gsp$epath[[1]]]$linea
data.frame(lineas)
lineas
1 Linea2
2 Linea7
3 Linea7
4 Linea7
5 Linea6
6 Linea6
7 Linea6
# Número de transbordos
num.transbordos <- sum(head(lineas,-1) != tail(lineas,-1))
num.transbordos
[1] 2
Referencias:
No hay comentarios:
Publicar un comentario