You are wrong about my code. The entire excel spreadsheet table should be loaded into R. Save As to a Tab delimited text file and use read.table() to bring the data into R.
---------------------------------------------- David L Carlson Associate Professor of Anthropology Texas A&M University College Station, TX 77843-4352 > -----Original Message----- > From: Elaine Kuo [mailto:elaine.kuo...@gmail.com] > Sent: Tuesday, December 18, 2012 12:39 AM > To: dcarl...@tamu.edu > Cc: r-help@r-project.org > Subject: Re: [R] averaging X of specific Y (latitude) > > Hello David, > > Thank you for the response. > > I changed the e-mail format to text via gmail setting. > > 1. the butterfly names > You are right that the butterfly names are stored in the original data. > However, in your code, it is necessary to input the names for the > command structure. > The method I used to input is > 1. display them in the original excel file, as one column with 11 > rows. > 2. add commas in a column, right to the name column. > 3. copy the columns of butterfly names and commas, then pasting them > in the wordpad. > 4. copy the wordpad text with butterfly names and commas into your > code > > Since the method sounds tedious, particularly when the number of > butterfly names increases over 11, > I would like to ask for less time-consuming method to elicit butterfly > names as factor. > (Maybe using some R command I do not know) > > 2. Latitude degree > Thank you for helping generate the mean of range size per latitudinal > degree, using the code:\ > Bfly <- aggregate(Range~floor(Latitude), dta, mean) > > Please kindly advise if it is possible to calculate the mean of range > size per 5 latitudinal degrees, > such as 6-10, 11-15, or 16-20 latitudinal degrees. > > Thank you again. > > Elaine > > > 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 > > On Tue, Dec 18, 2012 at 11:07 AM, David L Carlson <dcarl...@tamu.edu> > wrote: > > > > You should change your email format to text (you keep sending > messages in > > html format). > > > > Where are the butterfly names? Are they not in your original data? > Create > > your data.frame from the original data (which presumably has the > butterfly > > names in it already). Then use dput() if you need to email the data > to > > r-help. You cannot compute statistics or graphics from the result of > the > > dput() function. > > > > Yes you can produce a barplot. Type ?barplot to get the instructions. > > > > ---------------------------------------------- > > David L Carlson > > Associate Professor of Anthropology > > Texas A&M University > > College Station, TX 77843-4352 > > > > > > From: Elaine Kuo [mailto:elaine.kuo...@gmail.com] > > Sent: Monday, December 17, 2012 6:37 PM > > To: dcarl...@tamu.edu > > Cc: r-help@r-project.org > > Subject: Re: [R] averaging X of specific Y (latitude) > > > > Thank you, David. > > > > Now I know how to use dput. > > > > Two more questions conjured up when running the code: > > 1. If there are about 500 species of butterflies, > > please kindly advise if it is possible to input the butterfly > names (for > > .Label) using code, > > instead of keying in them one by one. > > > > 2. Aggregrate command > > Last time we produced the mean of range sizes. > > Please kindly advise if it is possible to produce barplot showing > the > > value range, instead of mean. > > > > Thank you > > Elaine > > > > code > > 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 > > >> > > On Tue, Dec 18, 2012 at 12:27 AM, David L Carlson <dcarl...@tamu.edu> > wrote: > > You are only using dput to create a version of your data that you can > post > > in your email along with your question. You do not use it in your > analysis. > > You originally posted a table of your data that requires extra steps > for us > > to convert into a useable form so I suggested you use dput in the > future to > > create a version of the data that is easy for r-help subscribers to > use in > > order to recreate your data. That makes it easier to answer your > question. > > > > ---------------------------------------------- > > David L Carlson > > Associate Professor of Anthropology > > Texas A&M University > > College Station, TX 77843-4352 > > > > From: Elaine Kuo [mailto:elaine.kuo...@gmail.com] > > Sent: Monday, December 17, 2012 5:56 AM > > To: dcarl...@tamu.edu; r-help@r-project.org > > > > Subject: Re: [R] averaging X of specific Y (latitude) > > > > Another question (I am sure it is the last one tentatively): > > > > After creating a text.file using dput (let's name the created file > > "datam"), > > please kindly advise how to use the text file in writing the code > using > > "structure" like below. > > > > Thank you. > > > > code > > 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))) > > > > Elaine > > > > > > On Mon, Dec 17, 2012 at 7:40 PM, Elaine Kuo <elaine.kuo...@gmail.com> > wrote: > > One more question: > > > > Please kindly explain > > why it is written as "row.names = c(NA, -11L))." > > (in the code below) > > > > I am unsure why it is "negative" 11. > > Thank you . > > > > Elaine > > > > code > > > > 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))) > > > > > > >> > > >> > > >> ----- 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. > > >> > > >> > > >> > > > > > > [[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.