# nmfApply: Apply Function for NMF Objects In NMF: Algorithms and Framework for Nonnegative Matrix Factorization (NMF)

 nmfApply R Documentation

## Apply Function for NMF Objects

### Description

The function `nmfApply` provides exteneded `apply`-like functionality for objects of class `NMF`. It enables to easily apply a function over different margins of NMF models.

### Usage

``````  nmfApply(X, MARGIN, FUN, ..., simplify = TRUE,
USE.NAMES = TRUE)
``````

### Arguments

 `X` an object that has suitable `basis` and `coef` methods, e.g. an NMF model. `MARGIN` a single numeric (integer) value that specifies over which margin(s) the function `FUN` is applied. See section Details for a list of possible values. `FUN` a function to apply over the specified margins. `...` extra arguments passed to `FUN` `simplify` a logical only used when `MARGIN=3`, that indicates if `sapply` should try to simplify result if possible. Since this argument follows ‘...’ its name cannot be abbreviated. `USE.NAMES` a logical only used when `MARGIN=3`, that indicates if `sapply` should use the names of the basis components to name the results if present. Since this argument follows ‘...’ its name cannot be abbreviated.

### Details

The function `FUN` is applied via a call to `apply` or `sapply` according to the value of argument `MARGIN` as follows:

MARGIN=1

apply `FUN` to each row of the basis matrix: ```apply(basis(X), 1L, FUN, ...)```.

MARGIN=2

apply `FUN` to each column of the coefficient matrix: ```apply(coef(X), 2L, FUN, ...)```.

MARGIN=3

apply `FUN` to each pair of associated basis component and basis profile: more or less ```sapply(seq(nbasis(X)), function(i, ...) FUN(basis(X)[,i], coef(X)[i, ], ...), ...)```.

In this case `FUN` must be have at least two arguments, to which are passed each basis components and basis profiles respectively – as numeric vectors.

MARGIN=4

apply `FUN` to each column of the basis matrix, i.e. to each basis component: `apply(basis(X), 2L, FUN, ...)`.

MARGIN=5

apply `FUN` to each row of the coefficient matrix: ```apply(coef(X), 1L, FUN, ...)```.

### Value

a vector or a list. See `apply` and `sapply` for more details on the output format.

NMF documentation built on March 31, 2023, 6:55 p.m.