[R] aggregate over x cases

baptiste auguie ba208 at exeter.ac.uk
Mon May 11 13:59:22 CEST 2009


try this,


library(plyr)
ddply(d, .(block, trial), function(.d) .d[1:2, ])

>   block trial   x   y
> 1     1     1 605 150
> 2     1     1 603 148
> 3     1     2 607 148
> 4     1     2 605 152

HTH,

baptiste


On 11 May 2009, at 13:49, Jens Bölte wrote:

> Hello,
>
> I have been struggling for quite some time to find a solution for  
> the following problem. I have a data frame which is organized by  
> block and trial. Each trial is represented across several rows in  
> this data frame. I'd like to extract the first x rows per trial and  
> block.
>
> For example
> 	block	trial	x 	y
> 1	1	1	605	150
> 2	1	1	603	148
> 3	1	1	604	140
> 4	1	1	600	140
> 5	1	1	590	135
> 6	1	1	580	135
> 7	1	2	607	148
> 8	1	2	605	152
> 10	1	2	600	158
> .....
>
> Selecting only the the first two rows per trial should result in
>
> block trial x y
> 1	1	605	150
> 1	1	603	148
> 1	2	607	148
> 1	2	605	152
>
> The data I am dealing with a x-y coordinates (samples) from an eye- 
> tracking experiment. I receive the data in this format and need to  
> eliminate unwanted samples.
>
> Thanks Jens Bölte
> <ATT00001.txt>

_____________________________

Baptiste Auguié

School of Physics
University of Exeter
Stocker Road,
Exeter, Devon,
EX4 4QL, UK

Phone: +44 1392 264187

http://newton.ex.ac.uk/research/emag




More information about the R-help mailing list