[R] adjacency list to non-symmetric matrix

David L Carlson dcarlson at tamu.edu
Tue Feb 5 18:32:52 CET 2013


If the order of people in the original data frame is important, one more line matches your example output:

> d$person <- factor(d$person, levels=unique(as.character(d$person)))
> table(d)
      group
person a b c d
  Sam  1 1 1 0
  Greg 1 0 0 0
  Tom  0 1 1 1
  Mary 0 1 0 1

----------------------------------------------
David L Carlson
Associate Professor of Anthropology
Texas A&M University
College Station, TX 77843-4352

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of William Dunlap
> Sent: Tuesday, February 05, 2013 10:47 AM
> To: Sebastian Haunss; r-help at r-project.org
> Subject: Re: [R] adjacency list to non-symmetric matrix
> 
> Try table():
>    > adj <- table(d) # 'd' is your data.frame
>    > adj
>          group
>    person a b c d
>      Greg 1 0 0 0
>      Mary 0 1 0 1
>      Sam  1 1 1 0
>      Tom  0 1 1 1
> If you have duplicate rows in the d then it will
> tally them up.  You can can convert positives to
> 1's with adj[adj>0] <- 1.
> 
> Bill Dunlap
> Spotfire, TIBCO Software
> wdunlap tibco.com
> 
> 
> > -----Original Message-----
> > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf
> > Of Sebastian Haunss
> > Sent: Tuesday, February 05, 2013 1:07 AM
> > To: r-help at r-project.org
> > Subject: [R] adjacency list to non-symmetric matrix
> >
> > Dear R community,
> >
> > is there an easy way to convert an adjacency list (or a data-frame)
> to a non-symmetric
> > matrix?
> >
> > The adjacency list has the following form:
> >
> > person group
> > 1 Sam a
> > 2 Sam b
> > 3 Sam c
> > 4 Greg a
> > 5 Tom b
> > 6 Tom c
> > 7 Tom d
> > 8 Mary b
> > 9 Mary d
> >
> > I need the data in a matrix with persons as rows and groups as
> columns:
> >
> > a b c d
> > Sam 1 1 1 0
> > Greg 1 0 0 0
> > Tom 0 1 1 1
> > Mary 0 1 0 1
> >
> > I know that there are several possibilities in some of the network
> packages to convert
> > adjacency lists to symmetric or sparse matrices, but I couldn't find
> a way to coerce them
> > into affiliation matrices.
> >
> >
> > kind regards
> > Sebastian
> >
> > --
> >
> > PD Dr. Sebastian Haunss
> > SfB 597 - Transformations of the State
> > Universität Bremen
> > Linzer Str. 9a
> > 28359 Bremen
> > T: +49-(0)421-218-56654
> > http://shaunss.ipgovernance.eu/
> >
> > Recently published:
> > Haunss, Sebastian (2012), “Gewalt und Gewaltlosigkeit in sozialen
> Bewegungen”,
> > Forschungsjournal Soziale Bewegungen 25(4): 6–16.
> > Leifeld, Philip, and Sebastian Haunss (2012), “Political Discourse
> Networks and the
> > Conflict over Software Patents in Europe”, European Journal of
> Political Research 51(3):
> > 382–409.
> >
> > ______________________________________________
> > 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.
> ______________________________________________
> 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