Samuel
2008-Feb-27 08:13 UTC
[R] how to convert a table to adjacency matrix used in social network analysis?
Hi Guys, Do you any one know how to convert a long format table to an adjacency matrix used in sna? The long table looks like p1 p2 counts a b 100 a c 200 a d 100 b c 80 b d 90 b e 100 c d 100 c e 40 d e 60 and I want to convert it to an adjacency matrix which can be used in sna? Any methods will be appreciated! btw, besides sna package, is there any better package can be used in social network analysis, specially good at plotting? Thanks in advance! Regards, -- Samuel Wu http://webclipping.com.cn [[alternative HTML version deleted]]
Chuck Cleland
2008-Feb-27 11:05 UTC
[R] how to convert a table to adjacency matrix used in social network analysis?
On 2/27/2008 3:13 AM, Samuel wrote:> Hi Guys, > > Do you any one know how to convert a long format table to an adjacency > matrix used in sna? The long table looks like > > p1 p2 counts > a b 100 > a c 200 > a d 100 > b c 80 > b d 90 > b e 100 > c d 100 > c e 40 > d e 60 > > and I want to convert it to an adjacency matrix which can be used in sna? > > Any methods will be appreciated!The graph package has some nice tools for this. mydf <- data.frame(p1=c('a','a','a','b','b','b','c','c','d'), p2=c('b','c','d','c','d','e','d','e','e'), counts=c(100,200,100,80,90,100,100,40,60)) library(graph) myadjM <- ftM2adjM(as.matrix(mydf[,1:2]), W=mydf$counts) myadjM a b c d e a 0 100 200 100 0 b 0 0 80 90 100 c 0 0 0 100 40 d 0 0 0 0 60 e 0 0 0 0 0> btw, besides sna package, is there any better package can be used in social > network analysis, specially good at plotting?For plotting I would look into the Rgraphviz package. Here is a simple diagram of the network: library(Rgraphviz) mygraph <- ftM2graphNEL(as.matrix(mydf[,1:2]), W=mydf$counts) plot(mygraph) I'm not sure how to incorporate the weights for each edge into the diagram, but maybe that is explained in the documentation for the sna and Rgraphviz packages.> Thanks in advance! > > Regards,-- Chuck Cleland, Ph.D. NDRI, Inc. 71 West 23rd Street, 8th floor New York, NY 10010 tel: (212) 845-4495 (Tu, Th) tel: (732) 512-0171 (M, W, F) fax: (917) 438-0894