[R] Apply a function according to factor levels.

arun smartpink111 at yahoo.com
Fri Aug 17 04:42:48 CEST 2012


Hi,
Try this:
dat1<-read.table(text="
 no.   values ind sample
1  0.03325  1      1
2  0.03305  1      1
3  0.03185  1      1
4  0.03515  1      1

-------------------------
-------------------------
42 0.01085  5      2
43 0.01660  5      3
44 0.03060  5      4
45 0.06605  5      5
",sep="",header=TRUE)
dat2<-within(dat1,{sample<-as.factor(sample)})
ddply(dat2,.(sample), function(x) mean(x$values))
# sample       V1
#1      1 0.033556
#2      2 0.011120
#3      3 0.017750
#4      4 0.030220
#5      5 0.062060
A.K.

----- Original Message -----
From: li li <hannah.hlx at gmail.com>
To: r-help <r-help at r-project.org>
Cc: 
Sent: Thursday, August 16, 2012 9:31 PM
Subject: [R] Apply a function according to factor levels.

Dear all,
   I have a question on applying a function to the data according to factor
levels.
For example, for the data below, what is the best way to apply a function
to
"values" according to different levels of "samples" (1,2,3,4,5)?
    values ind sample
1  0.03325   1      1
2  0.03305   1      1
3  0.03185   1      1
4  0.03515   1      1
5  0.03375   1      1
6  0.01180   1      2
7  0.01850   1      3
8  0.02915   1      4
9  0.06200   1      5
10 0.03230   2      1
11 0.03345   2      1
12 0.03385   2      1
13 0.03605   2      1
14 0.03225   2      1
15 0.01145   2      2
16 0.01805   2      3
17 0.02950   2      4
18 0.05995   2      5
19 0.03425   3      1
20 0.03575   3      1
21 0.03535   3      1
22 0.03380   3      1
23 0.03410   3      1
24 0.01050   3      2
25 0.01735   3      3
26 0.03140   3      4
27 0.06170   3      5
28 0.03430   4      1
29 0.03185   4      1
30 0.03165   4      1
31 0.03380   4      1
32 0.03235   4      1
33 0.01100   4      2
34 0.01825   4      3
35 0.03045   4      4
36 0.06060   4      5
37 0.03280   5      1
38 0.03350   5      1
39 0.03215   5      1
40 0.03545   5      1
41 0.03285   5      1
42 0.01085   5      2
43 0.01660   5      3
44 0.03060   5      4
45 0.06605   5      5


   Thank you.
      Hannah

    [[alternative HTML version deleted]]

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




More information about the R-help mailing list