[R] adding aggregate data to data frames
jim holtman
jholtman at gmail.com
Fri Oct 19 19:58:18 CEST 2007
Does this do what you want?
> x <- data.frame(subj=sample(1:3,20,TRUE), cond=sample(1:2,20,TRUE), time=runif(20,1,10))
> # add mean and sd
> x$mean <- ave(x$time, x$subj, x$cond)
> x$sd <- ave(x$time, x$subj, x$cond, FUN=sd)
> x
subj cond time mean sd
1 3 2 3.563114 5.637710 2.879756
2 2 2 9.055847 6.641738 2.051851
3 2 1 5.016118 5.955314 2.777777
4 1 1 8.019864 8.079528 0.598062
5 3 2 8.925571 5.637710 2.879756
6 2 1 4.718118 5.955314 2.777777
7 2 1 1.574276 5.955314 2.777777
8 1 2 4.019387 6.292459 3.214609
9 1 1 7.513534 8.079528 0.598062
10 2 2 4.038538 6.641738 2.051851
11 2 2 6.673727 6.641738 2.051851
12 1 2 8.565531 6.292459 3.214609
13 1 1 8.705185 8.079528 0.598062
14 2 1 4.522234 5.955314 2.777777
15 3 2 4.424445 5.637710 2.879756
16 2 1 9.059009 5.955314 2.777777
17 2 2 6.798842 6.641738 2.051851
18 2 1 7.669708 5.955314 2.777777
19 3 1 6.447731 6.447731 NA
20 2 1 9.127735 5.955314 2.777777
On 10/19/07, Dieter Vanderelst <dieter_vanderelst at emailengine.org> wrote:
> Dear List,
>
> I have a data frame containing reaction times of participants in some experiment.
>
> As usual each line is single trial in the experiment. Two factors denote the conditions in the experiment. Each participant completes different trials for each condition.
>
> Now, the question:
>
> I want to calculate per participant, per condition the mean reaction time and its standard deviation.
>
> I can do this using AGGREGATE(). However, I want to merge this info with the original data frame. This is, I want each line to contain the mean and SD of the reaction time for the participant and condition on that line.
>
> I have tried to solve this by looping trough data frame. For each line, I select using SUBSET() the lines that belong to the same participant and condition. Then I calculate the average/SD. But this takes a long time.
>
> BYTW: I find that finding proper subject for r-help list mails, is very hard. So, if any one knows a set of better keywords...
>
> Any ideas?
>
> Thanks,
> Dieter Vanderelst
>
> ------------------------------------------
> Dieter Vanderelst
>
> dieter _ vanderelst AT emailengine DOT org
> d DOT vanderelst AT tue DOT nl
>
> Eindhoven University of Technology
> Faculty of Industrial Design
> Designed Intelligence Group
> Den Dolech 2
> 5612 AZ Eindhoven
> The Netherlands
> Tel +31 40 247 91 11
>
> ______________________________________________
> R-help at 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.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem you are trying to solve?
More information about the R-help
mailing list