rmatrix  R Documentation 
The S4 generic rmatrix
generates a random matrix
from a given object. Methods are provided to generate
matrices with entries drawn from any given random
distribution function, e.g. runif
or
rnorm
.
rmatrix(x, ...) ## S4 method for signature 'numeric' rmatrix(x, y = NULL, dist = runif, byrow = FALSE, dimnames = NULL, ...)
x 
object from which to generate a random matrix 
y 
optional specification of number of columns 
dist 
a random distribution function or a numeric
seed (see details of method 
byrow 
a logical passed in the internal call to the
function 
dimnames 

... 
extra arguments passed to the distribution
function 
signature(x = "numeric")
: Generates
a random matrix of given dimensions, whose entries are
drawn using the distribution function dist
.
This is the workhorse method that is eventually called by all other methods. It returns a matrix with:
x
rows and y
columns if y
is
not missing and not NULL
;
dimension
x[1]
x x[2]
if x
has at least two
elements;
dimension x
(i.e. a square matrix)
otherwise.
The default is to draw its entries from the standard
uniform distribution using the base function
runif
, but any other function that
generates random numeric vectors of a given length may be
specified in argument dist
. All arguments in
...
are passed to the function specified in
dist
.
The only requirement is that the function in dist
is of the following form:
function(n, ...){ # return vector of length n ... }
This is the case of all base random draw function such as
rnorm
, rgamma
, etc...
signature(x = "ANY")
: Default
method which calls rmatrix,vector
on the
dimensions of x
that is assumed to be returned by
a suitable dim
method: it is equivalent to
rmatrix(dim(x), y=NULL, ...)
.
signature(x = "NMF")
: Returns the
target matrix estimate of the NMF model x
,
perturbated by adding a random matrix generated using the
default method of rmatrix
: it is a equivalent to
fitted(x) + rmatrix(fitted(x), ...)
.
This method can be used to generate random target matrices that depart from a known NMF model to a controlled extend. This is useful to test the robustness of NMF algorithms to the presence of certain types of noise in the data.
# # rmatrix,numericmethod # ## Generate a random matrix of a given size rmatrix(5, 3) ## Generate a random matrix of the same dimension of a template matrix a < matrix(1, 3, 4) rmatrix(a) ## Specificy the distribution to use # the default is uniform a < rmatrix(1000, 50) ## Not run: hist(a) # use normal ditribution a < rmatrix(1000, 50, rnorm) ## Not run: hist(a) # extra arguments can be passed to the random variate generation function a < rmatrix(1000, 50, rnorm, mean=2, sd=0.5) ## Not run: hist(a) # # rmatrix,ANYmethod # # random matrix of the same dimension as another matrix x < matrix(3,4) dim(rmatrix(x)) # # rmatrix,NMFmethod # # generate noisy fitted target from an NMF model (the true model) gr < as.numeric(mapply(rep, 1:3, 3)) h < outer(1:3, gr, '==') + 0 x < rnmf(10, H=h) y < rmatrix(x) ## Not run: # show heatmap of the noisy target matrix: block patterns should be clear aheatmap(y) ## End(Not run) # test NMF algorithm on noisy data # add some noise to the true model (drawn from uniform [0,1]) res < nmf(rmatrix(x), 3) summary(res) # add more noise to the true model (drawn from uniform [0,10]) res < nmf(rmatrix(x, max=10), 3) summary(res)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.