[R] Drawing random numbers from Uniform distribution with infinite range

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Mon Jul 28 20:01:25 CEST 2025


On 7/28/2025 5:30 PM, Daniel Lobo wrote:
> Many thanks for your guidance. However my original problem is, how to
> select n points in the Real line randomly without any preference of
> any particular probability distribution?
> 
> On Mon, 28 Jul 2025 at 21:45, Rui Barradas <ruipbarradas using sapo.pt> wrote:
>>
>> On 7/28/2025 5:00 PM, Daniel Lobo wrote:
>>> Hi,
>>>
>>> I want to draw a set of random number from Uniform distribution where
>>> Support is the entire Real line.
>>>
>>> runif(4, min = -Inf, max = Inf)
>>>
>>> However it produces all NAN
>>>
>>> Could you please help with the right approach?
>>>
>>> ______________________________________________
>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>> Hello,
>>
>>
>> What you are asking doesn't make sense.
>> The uniform distribution's PDF is
>>
>> f(x;a, b) = 1/abs(b - a) if x in [a, b]
>>               0            otherwise
>>
>> So what you have is 1/abs(Inf - -Inf) = 1/abs(Inf) = 0.
>>
>> And the cumulative distribution function is even worse, it will give you
>> the indeterminate Inf/Inf.
>> See the Wikipedia on the uniform distribution [1].
>>
>>
>> [1] https://en.wikipedia.org/wiki/Continuous_uniform_distribution
Hello,

Here is another explanation on the reason why you should sample from 
finite limits that make sense [1].

Ben's answer points you in an acceptable direction. Here is the same 
idea with other limits meant to get better floating-point accuracy.


n <- 1e6  # change this at will

mm <- .Machine$double.xmax
u <- runif(n, min =  -mm/3, max = mm/3)
hist(u)


[1] 
https://math.stackexchange.com/questions/3784691/probability-distribution-of-choosing-a-real-number-at-random

Hope this helps,

Rui Barradas



More information about the R-help mailing list