I have this data. I want to calculate Adjacency matrices in R.
How can I do this? V1,V2,V3 are columns.V1 and V2 are NODES, and W3 are weight from V1 to V2. Direction in this data is important. After calculating the Adjacency matrices, I want to calculate shortest path between these vertices with R language.
How can I do this?
V1 V2 V3
[1] 164885 431072 3
[2] 164885 164885 24
[3] 431072 431072 5
Here is a simpler solution that does not need reshape(). We just create an igraph graph directly from the data frame you have. If you really need the adjacency matrix, you can still get it via get.adjacency():
library(igraph)
## load data
df <- read.table(header=T, stringsAsFactors=F, text=
" V1 V2 V3
164885 431072 3
164885 164885 24
431072 431072 5")
## create graph
colnames(df) <- c("from", "to", "weight")
g <- graph.data.frame(df)
g
# IGRAPH DNW- 2 3 --
# + attr: name (v/c), weight (e/n)
## get shortest path lengths
shortest.paths(g, mode="out")
# 164885 431072
# 164885 0 3
# 431072 Inf 0
## get the actual shortest path
get.shortest.paths(g, from="164885", to="431072")
# [[1]]
# [1] 1 2
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With