[Rd] sample (PR#2546)

kjetil brinchmann halvorsen kjetil at entelnet.bo
Wed Mar 5 21:20:01 MET 2003


On 25 Feb 2003 at 19:05, Patrick Burns wrote:

> There is rumour that some of my mail didn't go where it should have because
> I don't know how to work email.  It was suggested that I summarize here.
> 
> The issue is with sample when the first argument is length 1.  Current
> behaviour is:
> 

I thought about this. It would be nice to have the behaviour Patrick 
Burns proposes, but there is a problem: What to do when the 
length one argument is numeric? Look at the following:

> sample(1)
[1] 1
> sample(7)
[1] 4 6 1 5 2 3 7
> sample(6.9)
[1] 2 4 5 1 3 6   # 6.9 truncated to 6
> sample(0)     
[1] 0                #  What one should expect here is not easy to 
                      #  know, as the help page requires a positive
                      #  integer
> sample(-3)
[1] -3              # same
> sample(0.5)
[1] 0.5
> sample(1.5)
[1] 1               # truncated

So what to do with length one numerical arguments, truncate, as seems 
to be done (but not always):

> sample(0.99)
[1] 0.99

or round, or give an error if not a positive integer, or? 
However it is done it will surely break some code. 

Kjetil Halvorsen


>  > sample('a', 1)
> Error in sample(x, size, replace, prob) : invalid first argument
>  > sample(3+0i, 1)
> Error in x >= 1 : illegal comparison with complex values
>  > sample(TRUE, 1)
> [1] 1
>  > sample(FALSE, 1)
> [1] FALSE
>  > sample(NA, 1)
> Error in if (length(x) == 1 && x >= 1) { :
>         missing value where logical needed
>  > sample(.5, 1)
> [1] 0.5
> 
> 
> The proposed behaviour is:
> 
>  > sample('a', 1)
> [1] "a"
>  > sample(3+0i, 1)
> [1] 3+0i
>  > sample(TRUE, 1)
> [1] TRUE
>  > sample(FALSE, 1)
> [1] FALSE
>  > sample(NA, 1)
> [1] NA
>  > sample(.5, 1)
> [1] 0.5
> 
> 
> For some reason that I haven't yet grasped, the current
> behaviour seems to be preferred to the proposed behaviour.
> 
> Pat Burns
> 
> patrick at burns-stat.com
> 
> ______________________________________________
> R-devel at stat.math.ethz.ch mailing list
> http://www.stat.math.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list