[Rd] sweep sanity checking?

Robin Hankin r.hankin at noc.soton.ac.uk
Thu Jul 12 10:47:44 CEST 2007


Hi

Brian Ripley, Heather Turner, and myself discussed this
issue at some length in a thread starting 20 June 2005 (how
do folk give a URL that points to a thread?).

The consensus was that adding a warning level option to sweep
was a good idea; Heather posted a version of sweep that implemented
this, which she posted on 21 June 2005.


rksh




On 12 Jul 2007, at 09:16, Petr Savicky wrote:

> The suggestion sounds reasonable to me. Let me add that sweep is  
> written
> to work even if MARGIN includes more than one dimension. To handle  
> these
> cases correctly, the test may be replaced e.g. by
>      if (check.margin && prod(dims[MARGIN])!=length(STATS)) {
>        warning("length(STATS) != prod(dim(x)[MARGIN])")
>      } else if (prod(dims[MARGIN]) %% length(STATS)!=0)
>        warning("prod(dim(x)[MARGIN]) is not a multiple of length 
> (STATS)")
> or even by
>      dimstat <- if (is.null(dim(STATS))) length(STATS) else dim(STATS)
>      if (check.margin && any(dims[MARGIN]!=dimstat)) {
>        warning("length(STATS) or dim(STAT) do not match dim(x) 
> [MARGIN]")
>      } else if (prod(dims[MARGIN]) %% length(STATS)!=0)
>        warning("prod(dim(x)[MARGIN]) is not a multiple of length 
> (STATS)")
>
> Petr.
>
>> Just an opinion from an R user: I think it's a sound idea.  I use  
>> my own
>> version of sweep with a stricter check: it stops if the vector is not
>> exactly the right length.
>>
>> -- Tony Plate
>>
>> Ben Bolker wrote:
>>> Ben Bolker <bolker <at> zoo.ufl.edu> writes:
>>>
>>>
>>>>   What would R-core think of the following 'enhanced'
>>>> sweep?
>>>>
>>>
>>>  (now posted at
>>> http://wiki.r-project.org/rwiki/doku.php?id=rdoc:base:sweep
>>> )
>>>
>>> It always warns if dim(x)[MARGIN] is
>>>
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

--
Robin Hankin
Uncertainty Analyst
National Oceanography Centre, Southampton
European Way, Southampton SO14 3ZH, UK
  tel  023-8059-7743



More information about the R-devel mailing list