Context added:

On Mar 2, 2012, at 3:51 PM, knavero wrote:

aggregate(z, identity, mean)
1   2   3   4   5
1.0 3.0 5.0 6.0 7.5
aggregate(z, mean)
Error: length(time(x)) == length(by[[1]]) is not TRUE

As generally happens when you call a function and fail to provide enough arguments to fill up its formals list.


Can someone help me understand the error above and why "identity" is
necessary to satisfy the error

Well on my machine it throws an error, probably because you failed to provide the requested code to create the objects you were working on. Is 'z' so sort of special classed object for which there is an aggregate method? Is 'identity' a list as expected by aggregate.default or aggregate.data.frame? It would be an unfortunate choice of an object name, since there is a function with that nam.

---------end context -----------------

On Mar 2, 2012, at 8:30 PM, knavero more recently wrote:

I've also searched "?identity" in the R shell and it doesn't seem to be the definition I'm looking for for this particular usage of "identity" as an argument in the aggregate function. I simply would appreciate a conceptual
explanation of what it does here and how it relates to the error.

I see no relation of the function `identity` to the error. It was simply an error caused by supplying 'mean` as the second arument to aggregate.zoo. The second argument in all of the aggregate functions is a grouping argument. In the case of aggregate.zoo that pattern has been generalized to allow a function to be applied to the index, but when aggregate.zoo attempted to apply `mean` to the index vector it did not return a factor object of the same length as the time vector, so there was no sensible grouping that could be formed formed.

As the help page (to which Dr Dalgaard referred you) says: `identity` got applied to the zoo-index. So its use in the first instance succeeded in creating a vector of the proper length so that when coerced to a factor provided a grouping. You could have supplied any function that created a vector length 8.

> index(z) < 3
[1]  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE

> aggregate(z, function(x){ x < 3}, mean)
FALSE  TRUE
  6.5   2.5

Now. ... Will you PLEASE read the Posting Guide and stop sending emails to Rhelp with no context. The posting behavior of new Nabble users is a constant annoyance to the list members who view this list with their mail clients. This is NOT Nabble and most of us do not want to use a web interface to read Rhelp.

--
David Winsemius, MD
West Hartford, CT

______________________________________________
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