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.