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 ______________________________________________ R-help@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.