# nmfWrapper: Wrapping NMF Algorithms In NMF: Algorithms and Framework for Nonnegative Matrix Factorization (NMF)

## Description

This function creates a wrapper function for calling the function `nmf` with a given NMF algorithm.

## Usage

 `1` ``` nmfWrapper(method, ..., .FIXED = FALSE) ```

## Arguments

 `method` Name of the NMF algorithm to be wrapped. It should be the name of a registered algorithm as returned by `nmfAlgorithm`, or an NMF algorithm object (i.e. an instance of `NMFStrategy`). `...` extra named arguments that define default values for any arguments of `nmf` or the algorithm itself. `.FIXED` a logical that indicates if the default arguments defined in `...` must be considered as fixed, i.e. that they are forced to have the defined values and cannot be used in a call to the wrapper function, in which case, a warning about discarding them is thrown if they are used. Non fixed arguments may have their value changed at call time, in which case it is honoured and passed to the `nmf` call. `.FIXED` may also be a character vector that specifies which argument amongst `...` should be considered as fixed.

## Value

a function with argument `...` and a set of default arguments defined in `...` in the call to `nmfWrapper`.

`nmfAlgorithm`, `nmf`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17``` ```# wrap Lee & Seung algorithm into a function lee <- nmfWrapper('lee', seed=12345) args(lee) # test on random data x <- rmatrix(100,20) res <- nmf(x, 3, 'lee', seed=12345) res2 <- lee(x, 3) nmf.equal(res, res2) res3 <- lee(x, 3, seed=123) nmf.equal(res, res3) # argument 'method' has no effect res4 <- lee(x, 3, method='brunet') nmf.equal(res, res4) ```