[Rd] A different error in sample()

Martin Maechler m@echler @ending from @t@t@m@th@ethz@ch
Thu Sep 20 09:20:46 CEST 2018


>>>>> Wolfgang Huber 
>>>>>     on Thu, 20 Sep 2018 08:47:47 +0200 writes:

    > FWIW, I suspect this is related to the function
    > R_unif_index that was introduced in src/main/RNG.c around
    > revision 72356, or the way this function is used in
    > do_sample in src/main/random.c.

Yes, it is just the use of 'dn' instead of 'n'
- a one letter thinko I'd say.

But *no*, it's much older than revision 72356; e.g., it's already in

    R version 3.0.0 (2013-04-03) -- "Masked Marvel"

but not yet in

    R version 2.15.3 (2013-03-01) -- "Security Blanket"

----

Here, I clearly think we see a regression bug, and hopefully not
one that should trigger often in practice...
and  -- without any statistics about the consequences out in
package space --
I do think we should fix this in code and let the documentation
become "great again" ;-)

Martin





    > 20.9.18 08:19, Wolfgang Huber scripsit:
    >> Besides wording of the documentation re truncating vs
    >> rounding, there is something peculiar going on with the
    >> fractional part of n:
    >> 
    >> > table(sample.int(2.5, 1e6, replace = TRUE))
    >> 
    >>      1      2      3 399051 401035 199914
    >> 
    >> > table(sample.int(3, 1e6, replace = TRUE))
    >> 
    >>      1      2      3 332956 332561 334483
    >> 
    >> > table(sample.int(2.01, 1e6, replace = TRUE))
    >> 
    >>      1      2      3 497173 497866   4961
    >>



More information about the R-devel mailing list