Re: [R] Aggregate() questions

From: Henrique Dallazuanna <wwwhsd_at_gmail.com>
Date: Fri, 02 May 2008 18:35:07 -0300

You need seet the FUN argument:

X <- with( FDP0D, ave( IAC, list( Key), FUN = mean))

On 5/1/08, Chip Barnaby <cbarnaby_at_wrightsoft.com> 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:cbarnaby_at_wrightsoft.com>cbarnaby_at_wrightsoft.com> 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:cbarnaby_at_wrightsoft.com>cbarnaby_at_wrightsoft.com
>
> >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_at_r-project.org>R-help_at_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 cbarnaby_at_wrightsoft.com
> 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_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.
>
>

-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

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

Received on Fri 02 May 2008 - 21:40:33 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 02 May 2008 - 22:30:36 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive