[Rd] [patch] add is.set parameter to sample()
Martin Maechler
maechler at stat.math.ethz.ch
Thu Mar 25 11:53:26 CET 2010
>>>>> "AndrewC" == Andrew Clausen <clausen at econ.upenn.edu>
>>>>> on Tue, 23 Mar 2010 08:04:12 -0400 writes:
AndrewC> Hi all,
AndrewC> I forgot to test my patch! I fixed a few bugs.
and this time, you even forgot to attach it (in a way to pass
through the list filters).
Note however, that all this seems unnecessary,
as we have sample.int()
and a trivial definition of resample()
at least in R-devel, which will be released as R 2.11.0 on
April 22.
Thank you anyway, for your efforts!
Martin
Martin Maechler, ETH Zurich
AndrewC> 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
>>
AndrewC> ______________________________________________
AndrewC> R-devel at r-project.org mailing list
AndrewC> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the R-devel
mailing list