Drawing from R Uniform Distribution in Octave

Description

This function wraps a call to the standard Octave function rand, which is redefined by RcppOctave to call the R base function runif. This enables to exactly reproduce stochastic computations in R and Octave, without changing the original Octave/Matlab code.

Usage

o_runif(n, p = n)

Arguments

n
number of output rows
p
number of output columns (default to n)

Value

a numeric vector or a matrix

Difference with plain <code>runif</code>

Since calling o_runif or runif is equivalent, this function may not be really useful for the end user, and is defined for testing purposes essentially. One possible advantage over plain runif however, is that it can generate random matrices, instead of only vectors (see examples).

Seeding

Because the RNG of R is called used, seeding computations is achieved by a standard call to set.seed.

Octave details

RcppOctave defines a set of functions like rand that shadow Octave built-in functions. These functions are defined in the Octave module Rrng.oct that is stored in the package modules/ sub-directory. See Octave.info('modules') to see this directory's full path.

Octave Documentation for <em>rand</em>

USAGE: U = rand( n [, k])

Generates uniform random variates as R function 'runif' -- using the current RNG from R.

Possible calls:
rand(n, k)   returns a n*k matrix with uncorrelated U(0, 1) deviates drawn in columns
rand(n)      returns a n*n matrix with uncorrelated U(0, 1) deviates drawn in columns


NOTE:
This function substitutes Octave original function in calls from RcppOctave

[Generated from Octave-3.6.4 on 2014-05-21 11:08:21 ]

Examples


## Don't show: 
# roxygen generated flag
options(R_CHECK_RUNNING_EXAMPLES_=TRUE)
## End Don't show

# Draw random uniform values (in vector form)
set.seed(123)
o_runif(1)
## [1] 0.2876
o_runif(1, 10)
##  [1] 0.78831 0.40898 0.88302 0.94047 0.04556 0.52811 0.89242 0.55144
##  [9] 0.45661 0.95683
# The result is identical as calling runif
set.seed(123)
runif(1)
## [1] 0.2876
runif(10)
##  [1] 0.78831 0.40898 0.88302 0.94047 0.04556 0.52811 0.89242 0.55144
##  [9] 0.45661 0.95683

# Draw random uniform values (in matrix form)
set.seed(123)
o_runif(2)
##        [,1]  [,2]
## [1,] 0.2876 0.409
## [2,] 0.7883 0.883
o_runif(2, 5)
##         [,1]   [,2]   [,3]   [,4]   [,5]
## [1,] 0.94047 0.5281 0.5514 0.9568 0.6776
## [2,] 0.04556 0.8924 0.4566 0.4533 0.5726

See also

runif Other orandom: o_rexp, o_rgamma, o_rnorm