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.guerz...@unito.it] > Sent: Wednesday, March 14, 2012 1:02 AM > To: William Dunlap > Cc: r-help@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-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf > >> Of Marco Guerzoni > >> Sent: Tuesday, March 13, 2012 10:51 AM > >> To: r-help@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@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@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.