[R] Simple use of dcast (reshape2 package)

Patrick Connolly p_connolly at slingshot.co.nz
Wed Jan 23 10:19:52 CET 2013


On Tue, 22-Jan-2013 at 08:30AM -0500, Ista Zahn wrote:

|> Hi,
|> 
|> ID is not the value column. Your casting call should be
|> 
|> dcast(aa, ... ~ Target, value.var = "Eaten")

Thanks for that illumination.  That does exactly what I wanted.  I
knew there were many ways of achieving the result, but I was
particularly interested in understanding how dcast() would do it.
It's also more elegant than any of the other ways of achieving the
same result.

Thanks also for the other suggestions from various other responders.

P


|> 
|> Best,
|> Ista
|> 
|> On Tue, Jan 22, 2013 at 4:23 AM, Patrick Connolly
|> <p_connolly at slingshot.co.nz> wrote:
|> > Suppose I have a small dataframe
|> >
|> >> aa
|> >      Target Eaten ID
|> > 50      TPP     0  1
|> > 51      TPP     1  2
|> > 52      TPP     3  3
|> > 53      TPP     1  4
|> > 54      TPP     2  5
|> > 50.1    GPA     9  1
|> > 51.1    GPA    11  2
|> > 52.1    GPA     8  3
|> > 53.1    GPA     8  4
|> > 54.1    GPA    10  5
|> >
|> > And I want to reshape it into
|> >
|> >   ID TPP GPA
|> > 1  1   0   9
|> > 2  2   1  11
|> > 3  3   3   8
|> > 4  4   1   8
|> > 5  5   2  10
|> >
|> > I realise that dcast function in the reshape2 package can handle much
|> > more complicated tasks than that, but I can't make it do a simple one.
|> >
|> > If I simply tried
|> >
|> >> dcast(aa, ... ~ Target)
|> > Using ID as value column: use value.var to override.
|> > Aggregation function missing: defaulting to length
|> >   Eaten GPA TPP
|> > 1     0   0   1
|> > 2     1   0   2
|> > 3     2   0   1
|> > 4     3   0   1
|> > 5     8   2   0
|> > 6     9   1   0
|> > 7    10   1   0
|> > 8    11   1   0
|> >
|> > As per the help file, it's giving counts of the numbers in the Eaten
|> > column since that's the default fun.aggregate value.
|> >
|> > My questions are: what fun.aggregate would work?  Alternatively, can
|> > value.var be set to something useful?
|> >
|> > TIA
|> >
|> > --
|> > ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.
|> >    ___    Patrick Connolly
|> >  {~._.~}                   Great minds discuss ideas
|> >  _( Y )_                 Average minds discuss events
|> > (:_~*~_:)                  Small minds discuss people
|> >  (_)-(_)                              ..... Eleanor Roosevelt
|> >
|> > ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.
|> >
|> > ______________________________________________
|> > 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.

-- 
~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.   
   ___    Patrick Connolly   
 {~._.~}                   Great minds discuss ideas    
 _( Y )_  	         Average minds discuss events 
(:_~*~_:)                  Small minds discuss people  
 (_)-(_)  	                      ..... Eleanor Roosevelt
	  
~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.



More information about the R-help mailing list