It is not necessary to rearrange the order. The aggregate function will do that. To get the mean Range for a latitude combining species within a latitude just remove Species:
> aggregate(Range~floor(Latitude), dta, mean) floor(Latitude) Range 1 9 616.440 2 10 714.360 3 12 851.550 4 16 690.770 5 18 766.155 ----------- David From: Elaine Kuo [mailto:elaine.kuo...@gmail.com] Sent: Sunday, December 16, 2012 5:17 PM To: dcarl...@tamu.edu; r-help@r-project.org; r-sig-...@stat.math.ethz.ch Subject: Re: [R] averaging X of specific Y (latitude) Thank you, David. Your answer reminded me of rearranging the order according to the latitude before running the calculation. One more question, please kindly help with the code to calculate the mean of the ranges of the same latitude? Or should any re-arrangement be noticed before the mean calculation? Thank you. Elaine ----- Original Message ----- From: David L Carlson <dcarl...@tamu.edu> To: 'Elaine Kuo' <elaine.kuo...@gmail.com>; r-help@r-project.org; 'r-sig-geo' <r-sig-...@stat.math.ethz.ch> Cc: Sent: Sunday, December 16, 2012 11:32 AM Subject: Re: [R] averaging X of specific Y (latitude) It is better to use dput() in R to create a text version of your data for us to work with. The aggregate command below gives you the mean ranges by butterfly species and latititude and saves the result as Bfly. The colnames() command simply renames the columns: > dta <- structure(list(Species = structure(1:11, .Label = c("Butterfly A1", + "Butterfly A2", "Butterfly A3", "Butterfly A4", "Butterfly B1", + "Butterfly B2", "Butterfly B3", "Butterfly B4", "Butterfly B5", + "Butterfly C1", "Butterfly C2"), class = "factor"), Range = c(130.5, + 450.68, 1102.38, 893.34, 820.2, 872.2, 488.2, 620.11, 982.78, + 720.32, 912.2), Latitude = c(9.45, 10.2, 9.3, 16.4, 10.54, 10.87, + 16.79, 18.3, 12.98, 12.67, 18.07)), .Names = c("Species", "Range", + "Latitude"), class = "data.frame", row.names = c(NA, -11L)) > Bfly <- aggregate(Range~Species+floor(Latitude), dta, mean) > colnames(Bfly) <- c("Species", "Latitude", "Mean") > Bfly Species Latitude Mean 1 Butterfly A1 9 130.50 2 Butterfly A3 9 1102.38 3 Butterfly A2 10 450.68 4 Butterfly B1 10 820.20 5 Butterfly B2 10 872.20 6 Butterfly B5 12 982.78 7 Butterfly C1 12 720.32 8 Butterfly A4 16 893.34 9 Butterfly B3 16 488.20 10 Butterfly B4 18 620.11 11 Butterfly C2 18 912.20 ---------------------------------------------- David L Carlson Associate Professor of Anthropology Texas A&M University College Station, TX 77843-4352 > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-bounces@r- > project.org] On Behalf Of Elaine Kuo > Sent: Saturday, December 15, 2012 10:15 PM > To: r-help@r-project.org; r-sig-geo > Subject: [R] averaging X of specific Y (latitude) > > Hello > > > > I have a table describing butterfly range traits. > > It is composed of three columns as below > > > > Species name range size (X) latitude of range midpoint (Y) > > > > There are 11 kinds of butterflies. > > Each has its range size, and the latitude of each range midpoint ranges > from 9 to 19. > > I would like to have the average range size of every degree of > latitude. > > For example, the average range size of latitude degree 10 (10.0-10.99: > Butterfly A2, B1, B2) > > Please kindly help with R code to calculate the average values. > > Thank you. > > > Elaine > > > The details are as followed. > > > > Butterfly A1 130.5 9.45 > > Butterfly A2 450.68 10.2 > > Butterfly A3 1102.38 9.3 > > Butterfly A4 893.34 16.4 > > Butterfly B1 820.2 10.54 > > Butterfly B2 872.2 10.87 > > Butterfly B3 488.2 16.79 > > Butterfly B4 620.11 18.3 > > Butterfly B5 982.78 12.98 > > Butterfly C1 720.32 12.67 > > Butterfly C2 912.2 18.07 > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. ______________________________________________ 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. ______________________________________________ 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.