Re: [R] Aggregate() questions

From: Chip Barnaby <cbarnaby_at_wrightsoft.com>
Date: Thu, 01 May 2008 10:15:23 -0400

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. Received on Thu 01 May 2008 - 14:31:14 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:35 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