From rpeng at jhsph.edu  Thu May  4 03:24:26 2006
From: rpeng at jhsph.edu (Roger Peng)
Date: Wed, 03 May 2006 21:24:26 -0400
Subject: [Rd] [R] Aggregate?
In-Reply-To: <971536df0605031736p3c59f182u6da8e565aeed60e0@mail.gmail.com>
References: <BA6FF017E924044A9BF748AFAEEA6F30A53314@FWC-TLEX3.fwc.state.fl.us>
	<971536df0605031327o56993db3n43d82a67fcab8b10@mail.gmail.com>
	<971536df0605031736p3c59f182u6da8e565aeed60e0@mail.gmail.com>
Message-ID: <445957CA.1060709@jhsph.edu>

This was fixed fairly recently in 2.3.0 patched.  It works in SVN 
revision 37953.

-roger

Gabor Grothendieck wrote:
> 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
>>>
>>
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 

-- 
Roger D. Peng  |  http://www.biostat.jhsph.edu/~rpeng/



[Rd] [R] Aggregate?
Roger Peng