This could be fit with a multilevel model: Observations are nested within people. Reaction time (the DV) and time (1-10) are both measured at level 1 (i.e., observation).
First, I would format your data such that
ID is a
numeric() (i.e., 1, 2, 3, etc., instead of run1, run2, run3, etc.)
Second, the packages you want to use are the
lme4 packages. The
lme4 package authors want you to do nested model comparisons and likelihood ratio tests to see if effects are significant, but an easier way to do this is using Satterthwaite approximation for the degrees of freedom, which is what
Just like the
lm() function in R, you can use the
lmer() function from
lme4. You specify an equation and the dataset. The only difference is that you will now specify the random effects structure in the formula. If you are only interested in
time (i.e., you are ignoring condition), your formula would look like:
lmer(reaction_time ~ time + (1+time|ID), yourdata)
The first part tells us that
reaction_time is going to be predicted by
time. The part in parentheses tells us that we are allowing each participant (
ID) to have their own intercept (
1) and slope (
time). You can call
summary() on that
lmer() object to look at the significance of
time as well as how much variance there is in both slopes and intercepts.
I would suggest checking out this book or this book as well as some guides online.
I'd also like to add that this is not "the" appropriate test, but one of many appropriate tests for the question you are asking. Another good—and at times mathematically equivalent—approach would be latent growth models.