[R] Equivalent of 'first.var' or 'last.var' from SAS in R?

Matthew Pettis matthew.pettis at gmail.com
Thu Sep 25 21:56:39 CEST 2008


Thanks to Peter and Phil, this was indeed my idea.

On Thu, Sep 25, 2008 at 2:26 PM, Peter Dalgaard
<p.dalgaard at biostat.ku.dk> wrote:
> Matthew Pettis wrote:
>>
>> Hi,
>>
>> I want to sort a data frame by multiple columns and then take the
>> first record in each unique level of the "by" group I used to sort the
>> data frame.  Does someone have an example of how to do this?
>>
>> Thanks,
>> Matt
>>
>>
>
> Something like this
>
>> aggregate(airquality,airquality["Month"],head,1)
>  Month Ozone Solar.R Wind Temp Month Day
> 1     5    41     190  7.4   67     5   1
> 2     6    NA     286  8.6   78     6   1
> 3     7   135     269  4.1   84     7   1
> 4     8    39      83  6.9   81     8   1
> 5     9    96     167  6.9   91     9   1
>
> where you probably want to lose the first column.
>
> or
>
>> unsplit(lapply(split(aq,aq$Month), head,1),5:9)
>   Ozone Solar.R Wind Temp Month Day
> 1      41     190  7.4   67     5   1
> 32     NA     286  8.6   78     6   1
> 62    135     269  4.1   84     7   1
> 93     39      83  6.9   81     8   1
> 124    96     167  6.9   91     9   1
>
> This also works, but the "tail" variant is harder:
>
>> unsplit(lapply(split(aq,aq$Month), "[",1,),5:9)
>
>
>
> --
>  O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
>  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
> (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907
>
>



-- 
It is from the wellspring of our despair and the places that we are
broken that we come to repair the world.
-- Murray Waas



More information about the R-help mailing list