From ggrothendieck at gmail.com  Thu May  4 02:36:43 2006
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Wed, 3 May 2006 20:36:43 -0400
Subject: [Rd] [R] Aggregate?
In-Reply-To: <971536df0605031327o56993db3n43d82a67fcab8b10@mail.gmail.com>
References: <BA6FF017E924044A9BF748AFAEEA6F30A53314@FWC-TLEX3.fwc.state.fl.us>
	<971536df0605031327o56993db3n43d82a67fcab8b10@mail.gmail.com>
Message-ID: <971536df0605031736p3c59f182u6da8e565aeed60e0@mail.gmail.com>

I am moving this from r-help to r-devel.

The poster pointed out to me that my solution works in 2.2.1 but not
in 2.3.0 patched.  Does anyone know what the problem is?

> # 2.3.0 patched -- gives error
> DF <- data.frame(A = gl(2,2), B = gl(2,2), C = 1:4)  # test data
> out.by <- by(DF, DF$A, function(x) replace(x[1,], "C", sum(x$C)))
> do.call(rbind, out.by)
Error in data.frame(A = c("1", "2"), B = c("1", "2"), C = c("3", "7"),  :
        row names contain missing values
> R.version.string # Windows XP
[1] "Version 2.3.0 Patched (2006-04-28 r37936)"

> # 2.3.1 -- works ok
> DF <- data.frame(A = gl(2,2), B = gl(2,2), C = 1:4)  # test data
> out.by <- by(DF, DF$A, function(x) replace(x[1,], "C", sum(x$C)))
> do.call(rbind, out.by)
  A B C
1 1 1 3
2 2 2 7
> R.version.string # Windows XP
[1] "R version 2.2.1, 2005-12-20"

On 5/3/06, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
> Suppose we want to sum C over levels of A and that B is constant
> within levels of A.  Then:
>
> DF <- data.frame(A = gl(2,2), B = gl(2,2), C = 1:4)  # test data
> do.call("rbind", by(DF, DF$A, function(x) replace(x[1,], "C", sum(x$C))))
>
>
>
> On 5/3/06, Guenther, Cameron <Cameron.Guenther at myfwc.com> wrote:
> > Hello,
> >
> > I have a data set with a grouping variable (TRIPID) and  several other
> > variables.  TRIPID is repeated in some areas and I would like to use a
> > function like aggregate to sum the variable UNITS according to TRIPID.
> > However I would also like to retain the other variables as they are in
> > the data set with the new summed TRIPID.
> >
> > So what I have is something like this:
> >
> > YEAR    MONTH   DAY     CONTINUE        SPL     AREA    COUNTY  DEPTH
> > DEPUNIT GEAR    GEAR2   TRAPS   SOAKTIME        UNITS   FACTOR  DISPOSIT
> > NUMSETS TRIPST  TRIPID
> > 1992            1           26              1         SP0073928       8
> > 25         4           NA      1000000     NA          NA
> > NA              161             1           NA              NA
> > NA      0216    3399054     1992            1           26
> > 1         SP0073928       8             25         4           NA
> > 1000000     NA          NA              NA              8
> > 1           NA              NA              NA      0216    3399054
> > 1992            1           26              2         SP0004228       8
> > 25         4           NA      1000000     NA          NA
> > NA              161             1           NA              NA
> > NA      0216    3399054      1992            1           26
> > 2         SP0004228       8             25         4           NA
> > 1000000     NA          NA              NA              8
> > 1           NA              NA              NA      0216    3399054
> > 1992            1           25              NA      SP0052652       8
> > 25         4           NA      1000000     NA          NA
> > NA              85              1           NA              NA
> > NA      0216    3399057       1992            1           26
> > NA      SP0037940       8             25         4           NA
> > 1000000     NA          NA              NA              70
> > 1           NA              NA              NA      0216    3399058
> > 1992            1           27              NA      SP0072357       8
> > 25         4           NA      1000000     NA          NA
> > NA              15              1           NA              NA
> > NA      0216    3399059
> > 1992            1           27              NA      SP0072357       8
> > 25         4           NA      1000000     NA          NA
> > NA              20              1           NA              NA
> > NA      0216    3399059     1992            1           27
> > NA      SP0026324       8             25         4           NA
> > 1000000     NA          NA              NA              8
> > 1           NA              NA              NA      0216    3399060
> > 1992            1           28              1         SP0072357       8
> > 25         4           NA      1000000     NA          NA
> > NA              200            1           NA              NA
> > NA      0216    3399062
> >
> > And what I want is this:
> >
> > YEAR    MONTH   DAY     CONTINUE        SPL     AREA    COUNTY  DEPTH
> > DEPUNIT GEAR    GEAR2   TRAPS   SOAKTIME        UNITS   FACTOR  DISPOSIT
> > NUMSETS TRIPST  TRIPID
> > 1992            1           26              1         SP0073928       8
> > 25         4           NA      1000000     NA          NA
> > NA              338            1           NA              NA
> > NA      0216    3399054      1992            1           25
> > NA      SP0052652       8             25         4           NA
> > 1000000     NA          NA              NA              85
> > 1           NA              NA              NA      0216    3399057
> > 1992            1           26              NA      SP0037940       8
> > 25         4           NA      1000000     NA          NA
> > NA              70              1           NA              NA
> > NA      0216    3399058
> > 1992            1           27              NA      SP0072357       8
> > 25         4           NA      1000000     NA          NA
> > NA              35              1           NA              NA
> > NA      0216    3399059
> > 1992            1           27              NA      SP0026324       8
> > 25         4           NA      1000000     NA          NA
> > NA              8               1           NA              NA
> > NA      0216    3399060
> > 1992            1           28              1         SP0072357       8
> > 25         4           NA      1000000     NA          NA
> > NA              200            1           NA              NA
> > NA      0216    3399062
> >
> >
> > Does anyone know how to do this.  Data file is attached.
> > Thanks in advance
> >
> > Cameron Guenther, Ph.D.
> > Associate Research Scientist
> > FWC/FWRI, Marine Fisheries Research
> > 100 8th Avenue S.E.
> > St. Petersburg, FL 33701
> > (727)896-8626 Ext. 4305
> > cameron.guenther at myfwc.com
> >
> >        [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> >
>



[Rd] [R] Aggregate?
Gabor Grothendieck