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

______________________________________________
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.

Reply via email to