You need seet the FUN argument: X <- with( FDP0D, ave( IAC, list( Key), FUN = mean))
On 5/1/08, Chip Barnaby <[EMAIL PROTECTED]> wrote: > > Henrique, thanks for the response. As a new > user, I was unaware of with() and ave(), those are both very helpful. > > However, I don't think your method is quite > right. I for all rows in each Key, I want the mean( IAC) where ProfA <= > 0. > > To simplify the problem, I have made a subset > dataframe that contains only the rows required > for the mean (data frame names changed from the original email) ... > > FDP0D<-subset( FD, abs( FD$ProfA) < .01 & FD$IncA < 70, select=c(Key,IAC)) > > The first few rows of FDP0D look like this (note row names) ... > > > FDP0D > Key IAC > 11 B6-VB000.VB00045.3.12.3.0 0.889 > 12 B6-VB000.VB00045.3.12.3.0 0.889 > 13 B6-VB000.VB00045.3.12.3.0 0.890 > 14 B6-VB000.VB00045.3.12.3.0 0.890 > 15 B6-VB000.VB00045.3.12.3.0 0.891 > 16 B6-VB000.VB00045.3.12.3.0 0.892 > 17 B6-VB000.VB00045.3.12.3.0 0.893 > 83 B6-VB020.VB02045.3.12.3.0 0.852 > 84 B6-VB020.VB02045.3.12.3.0 0.852 > 85 B6-VB020.VB02045.3.12.3.0 0.852 > (etc ... 630 rows) > > Now I do the ave( ) > > > X<-with( FDP0D, ave( IAC, list( Key), mean)) > > And I get ... > > function (x, ...) > UseMethod("mean") > <environment: namespace:base> > Error in unique.default(x) : unique() applies only to vectors > > > > What's up? unique() seems to work OK on Key ... > > > with( FDP0D, unique( Key)) > [1] "B6-VB000.VB00045.3.12.3.0" "B6-VB020.VB02045.3.12.3.0" > [3] "B6-VB040.VB04045.3.12.3.0" "B6-VB060.VB06045.3.12.3.0" > [5] "B6-VB080.VB08045.3.12.3.0" "B6-VB100.VB10045.3.12.3.0" > [7] "BC6-VB000.VB00045.3.12.3.0" "BC6-VB020.VB02045.3.12.3.0" > [9] "BC6-VB040.VB04045.3.12.3.0" "BC6-VB060.VB06045.3.12.3.0" > (etc, 90 values which is correct) > > Thanks, > > Chip Barnaby > > > > > At 03:09 PM 4/30/2008, Henrique Dallazuanna wrote: > >If I understand your question: > > > > x$IAC0 <- with(x, ave(IAC, list(ProfA, Key), FUN = mean)) > > > >On Wed, Apr 30, 2008 at 3:52 PM, Chip Barnaby > > ><<mailto:[EMAIL PROTECTED]>[EMAIL PROTECTED]> wrote: > >Dear all -- > > > >I have a data frame containing data related to > >heat gain through windows. The general form is ... > > > >Key ProfA IAC <many other numeric columns> > >AAA 0 .7 > >AAA 10 .6 > >AAA 0 .66 > >AAA 20 .45 > >(more AAA rows) > >(then AAB rows) > > > >'Key' identifies the physical configuration ... > >rows with a given Key contain data for same window under various > conditions. > > > >I want to add a column IAC0 containing, for each > >Key, the mean IAC of all rows with ProfA == 0. > > > >The general approach I think I need is > >approximately (the following is not known to run) -- > > > >1) XS<-subset( X, ProfA < .01) to get the ProfA > >== 0 rows. This could be done implicitly as part of step 2, I suppose. > > > >2) X0<-aggregate( XS[,"IAC"], by=list( Key=XS$Key), mean) > > > >3) XF<-merge( X, X0, by="Key") > > > >4) Change new col name to "IAC0" (see Question 2). > > > >Question 1: Is this a reasonable way to solve my problem? > > > >Question 2: The aggregate() result has 2 > >columns: "Key" and "x". Can the name of the > >mean column be specified (short of renaming > >after the fact)? All the aggregate() examples > >(e.g. in help()) elegantly produce the "right > >result" with nicely named columns etc. I can't > >seem to make things work so smoothly. > > > >Thanks! > > > >Chip Barnaby > > > > > > > > > > > > > > > > > > > >--------------------------------------------------------- > >Chip > >Barnaby > > ><mailto:[EMAIL PROTECTED]>[EMAIL PROTECTED] > > >Vice President of Research > >Wrightsoft Corp. 781-862-8719 x118 voice > >131 Hartwell Ave 781-861-2058 fax > > >Lexington, MA 02421 <http://www.wrightsoft.com>www.wrightsoft.com > > > >______________________________________________ > ><mailto:R-help@r-project.org>R-help@r-project.org mailing list > ><https://stat.ethz.ch/mailman/listinfo/r-help> > https://stat.ethz.ch/mailman/listinfo/r-help > > >PLEASE do read the posting guide > > ><http://www.R-project.org/posting-guide.html> > http://www.R-project.org/posting-guide.html > > >and provide commented, minimal, self-contained, reproducible code. > > > > > > > > > >-- > >Henrique Dallazuanna > >Curitiba-Paraná-Brasil > >25° 25' 40" S 49° 16' 22" O > > > --------------------------------------------------------- > Chip Barnaby [EMAIL PROTECTED] > Vice President of Research > Wrightsoft Corp. 781-862-8719 x118 voice > 131 Hartwell Ave 781-861-2058 fax > Lexington, MA 02421 www.wrightsoft.com > > --------------------------------------------------------- > [[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. > > -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[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.