[R] Need help on creating Adjacency matrix in R

arun smartpink111 at yahoo.com
Fri Jun 14 15:44:22 CEST 2013



HI,

May be this helps:
dat1<- read.table(text="
Col1 Col2 Weight
  A D 0.1
  B C 0.4
  C M 0.6
  D P 0.8
  E W 1
  F D 1.2
  G C 3.1
  H M 4
",sep="",header=TRUE,stringsAsFactors=FALSE)
 vec1<- c(unique(dat1[,1]),unique(dat1[,2]))
datNew<- expand.grid(vec1,vec1)
colnames(datNew)<- colnames(dat1)[-3]
library(plyr)
 dat2<-join(datNew,dat1,type="left")
dat2$Weight[is.na(dat2$Weight)]<-0
m1<-xtabs(Weight~Col1+Col2,data=dat2)
library(igraph)
g <- graph.adjacency(m1, mode="directed", weighted=TRUE, diag=TRUE)
get.adjacency(g)
#11 x 11 sparse Matrix of class "dgCMatrix"
#   [[ suppressing 11 column names ‘A’, ‘B’, ‘C’ ... ]]
#                       
#A . . . 1 . . . . . . .
#B . . 1 . . . . . . . .
#C . . . . . . . . 1 . .
#D . . . . . . . . . 1 .
#E . . . . . . . . . . 1
#F . . . 1 . . . . . . .
#G . . 1 . . . . . . . .
#H . . . . . . . . 1 . .
#M . . . . . . . . . . .
#P . . . . . . . . . . .
#W . . . . . . . . . . .

#or
library(reshape2)
m2<-dcast(dat2,Col1~Col2,value.var="Weight",fill=0)
row.names(m2)<- m2[,1]
m2<- as.matrix(m2[,-1])

g1 <- graph.adjacency(m2, mode="directed", weighted=TRUE, diag=TRUE)
 get.adjacency(g1)
#11 x 11 sparse Matrix of class "dgCMatrix"
#   [[ suppressing 11 column names ‘A’, ‘B’, ‘C’ ... ]]
#                       
#A . . . 1 . . . . . . .
#B . . 1 . . . . . . . .
#C . . . . . . . . 1 . .
#D . . . . . . . . . 1 .
#E . . . . . . . . . . 1
#F . . . 1 . . . . . . .
#G . . 1 . . . . . . . .
#H . . . . . . . . 1 . .
#M . . . . . . . . . . .
#P . . . . . . . . . . .
#W . . . . . . . . . . .

A.K.

----- Original Message -----
From: rn27in . <rn27in at gmail.com>
To: r-help at r-project.org
Cc: 
Sent: Friday, June 14, 2013 2:43 AM
Subject: [R] Need help on creating Adjacency matrix in R

Hello everyone

I am relatively new to R and wanted some help on creating adjacency matrix

I have a dataset as given below and wanted to create an adjacency matrix in
R. For creating an adjacency matrix, the matrix should be a square matrix.
I tried creating a matrix directly, but it would not be a square matrix.
Can any one help me out with this problem.

Thanks
Rohit

Col 1 Col 2     Weight  A D 0.1  B C 0.4  C M 0.6  D P 0.8  E W 1  F D 1.2
G C 3.1  H M 4

    [[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list