[R] reshaping a dataset for a network

William Dunlap wdunlap at tibco.com
Tue Mar 13 20:15:41 CET 2012


Is the following what you want?
  > a <- c(1,2,3,4,4,4,5,5)
  > b <- c(11,7,4,9,8,3,12,4)
  > split(b, a)
  $1
  [1] 11  

  $2
  [1] 7

  $3
  [1] 4

  $4
  [1] 9 8 3 

  $5
  [1] 12  4

Note that your df<-cbind(a,b) produces a matrix, not the data.frame
that your df suggests you want.  Use df<-data.frame(a,b) to make
a data.frame.  Then you could do with(df, split(a,b)) to operate on
the a and b in the data.frame df.

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 Marco Guerzoni
> Sent: Tuesday, March 13, 2012 10:51 AM
> To: r-help at r-project.org
> Subject: [R] reshaping a dataset for a network
> 
> dear all,
> apologizes for bothering with a probably stupid question but I really
> don' t know how to proceed.
> 
> I have a dataset which look like df
> 
> a <- c(1,2,3,4,4,4,5,5)
> b <- c(11,7,4,9,8,3,12,4)
> df <-cbind(a,b)
> 
> I would like to have one which looks like this:
> 
> a
> 1 11
> 2 7
> 3 4
> 4 9 8 3
> 5 12 4
> 
> a are vertex of a network, b the edges. In the data the lenght of a is
> about 50000
> 
> I read several posts about reshape, reshape2, split, ldply but I
> couldn't manage to do it. The problem seems to be that the is not a real
> panel.
> 
> Any help would be really appreciated,
> my best regards
> Marco
> 
> ______________________________________________
> 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