[R] Simple use of dcast (reshape2 package)

D. Rizopoulos d.rizopoulos at erasmusmc.nl
Tue Jan 22 10:40:11 CET 2013


you could try the following:

DF <- read.table(textConnection("
      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"), header = TRUE)


newDF <- as.data.frame(with(DF, tapply(Eaten, list(ID, Target), c)))
newDF$ID <- unique(DF$ID)
newDF


I hope it helps.

Best,
Dimitris



On 1/22/2013 10:23 AM, Patrick Connolly 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
>

-- 
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014
Web: http://www.erasmusmc.nl/biostatistiek/


More information about the R-help mailing list