[Rd] [R] Aggregate?

Duncan Murdoch murdoch at stats.uwo.ca
Thu May 4 03:46:49 CEST 2006


On 5/3/2006 9:32 PM, Gabor Grothendieck wrote:
> I guess there is no Windows binary for that version yet since I downloaded
> the most recent Windows binary off CRAN a minute before I tried it.

The build process that leads to the binaries on CRAN is fairly flaky. 
When something goes wrong, it blocks until I notice and kill a few jobs. 
  Right now, for example, the latest builds are from April 28 (as they 
say, right at the bottom of the page).  I restarted things today, so 
tomorrow you might see newer builds there.

When the R Foundation starts paying my salary, I'll devote my full 
attention to the build process.

Duncan Murdoch

> 
> On 5/3/06, Roger Peng <rpeng at jhsph.edu> wrote:
>> 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/
>>
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list