[Rd] [patch] add is.set parameter to sample()

Andrew Clausen clausen at econ.upenn.edu
Tue Mar 23 13:04:12 CET 2010


Hi all,

I forgot to test my patch!  I fixed a few bugs.

Cheers,
Andrew

On 22 March 2010 22:53, Andrew Clausen <clausen at econ.upenn.edu> wrote:
> Hi all,
>
> sample() has some well-documented undesirable behaviour.
>
> sample(1:6, 1)
> sample(2:6, 1)
> ...
> sample(5:6, 1)
>
> do what you expect, but
>
> sample(6:6, 1)
> sample(1:6, 1)
>
> do the same thing.
>
> This behaviour is documented:
>
>     If 'x' has length 1, is numeric (in the sense of 'is.numeric') and
>     'x >= 1', sampling _via_ 'sample' takes place from '1:x'.  _Note_
>     that this convenience feature may lead to undesired behaviour when
>     'x' is of varying length 'sample(x)'.  See the 'resample()'
>     example below.
>
> My proposal is to add an extra parameter is.set to sample() to control
> this behaviour.  If the parameter is unspecified, then we keep the old
> behaviour for compatibility.  If it is TRUE, then we treat the first
> parameter x as a set.  If it is FALSE, then we treat it as a set size.
>  This means that
>
> sample(6:6, 1, is.set=TRUE)
>
> would return 6 with probability 1.
>
> I have attached a patch to implement this new option.
>
> Cheers,
> Andrew
>


More information about the R-devel mailing list