Try this:

> aggregate(list(Max = df$value), df['id'], max)
  id      Max
1 11 2.610491
2 22 3.796836
3 33 6.562515

or if using value rather than Max is ok then just:

> aggregate(df['value'], df['id'], max)
  id    value
1 11 2.610491
2 22 3.796836
3 33 6.562515


On Thu, Feb 11, 2010 at 12:18 PM, Chuck White <chuckwhi...@charter.net> wrote:
> This question is about column names returned by the aggregate function. 
> Consider the following example
>
> df <- data.frame(
>   id = c(rep('11',30),rep('22',30),rep('33',30)),
>   value = c(rnorm(30,2,0.5), rnorm(30,3,0.5), rnorm(30,6,0.5))
> )
>
> aggregate(df[,c("value"),drop=FALSE], by=list(id=df$id), max)
> output:
>  id    value
> 1 11 2.693528
> 2 22 3.868400
> 3 33 6.942519
>
> aggregate(df$value, by=list(id=df$id), max)
> output:
>  id        x
> 1 11 2.693528
> 2 22 3.868400
> 3 33 6.942519
>
> (YMMV on output values since data is randomly generated)
>
> I would like to be able to name the output column as max.value.  I realize I 
> can add the following statement:
> colnames(df)[match("value",colnames(df))] <- "max.value"
>
> Is there a way of having aggregate return computed column names which can be 
> specified when calling the function (i.e. aggregate)?
>
> ______________________________________________
> 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.

Reply via email to