[R] reshaping a dataset for a network

William Dunlap wdunlap at tibco.com
Wed Mar 14 16:43:58 CET 2012


I see you have a solution, but why do you want the
results of split() in matrix form?  E.g., does it make
a nicer printout, is it needed to interface with other
R functions, is it needed to interface with other
software?

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: Marco Guerzoni [mailto:marco.guerzoni at unito.it]
> Sent: Wednesday, March 14, 2012 1:02 AM
> To: William Dunlap
> Cc: r-help at r-project.org
> Subject: Re: [R] reshaping a dataset for a network
> 
> Thank you fro the reply.
> I managed to arrive till here, then I would like to have it in matrix
> where the $1 $2...$5 are the first column.
> 
> Il 3/13/2012 8:15 PM, William Dunlap ha scritto:
> > 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
> 
> Here I did
> 
> c <- split(b, a)
> d <- do.call(rbind,c)
> 
> and I get
> 
>    [,1] [,2] [,3]
> 1   11   11   11
> 2    7    7    7
> 3    4    4    4
> 4    9    8    3
> 5   12    4   12
> 
> 
> Instead of what I would like:
> 
>    [,1] [,2] [,3]
> 1   11
> 2    7
> 3    4
> 4    9    8    3
> 5   12    4
> 
> A solution could be rbind.fill , which does not seem to work with list.
> 
> 
> thanks
> Marco Guerzoni,
> Department of Economics
> University of Turin
> 
> 
> >
> > 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