`base::sweep()`

for `hyperSpec`

objects.

```
# S4 method for hyperSpec
sweep(x, MARGIN, STATS, FUN = "-", check.margin = TRUE, ...)
```

- x
a

`hyperSpec object.`

- MARGIN
direction of the spectra matrix that

`STATS`

goees along.- STATS
the summary statistic to sweep out. Either a vector or a

`hyperSpec`

object.hyperSpec offers a non-standard convenience function: if

`STATS`

is a function, this function is applied first (with the same`MARGIN`

) to compute the statistic. However, no further arguments to the apply function can be given. See the examples.- FUN
the function to do the sweeping, e.g.

`-`

or`/`

.- check.margin
If

`TRUE`

(the default), warn if the length or dimensions of`STATS`

do not match the specified dimensions of`x`

. Set to`FALSE`

for a small speed gain when you*know*that dimensions match.- ...
further arguments for

`FUN`

A `hyperSpec`

object.

Calls `base::sweep()`

for the spectra matrix.

`sweep()`

is useful for some spectra pre-processing, like offset
correction, subtraction of background spectra, and normalization of the
spectra.

```
## Subtract the background / slide / blank spectrum
# the example data does not have spectra of the empty slide,
# so instead the overall composition of the sample is subtracted
background <- apply(faux_cell, 2, quantile, probs = 0.05)
corrected <- sweep(faux_cell, 2, background, "-")
plot(corrected, "spcprctl5")
## Offset correction
offsets <- apply(faux_cell, 1, min)
corrected <- sweep(faux_cell, 1, offsets, "-")
plot(corrected, "spcprctl5")
## Min-max normalization (on max amide I)
# the minimum is set to zero by the offset correction.
factor <- apply(corrected, 1, max)
mm.corrected <- sweep(corrected, 1, factor, "/")
plot(mm.corrected, "spcprctl5")
## convenience: give function to compute STATS:
mm.corrected2 <- sweep(corrected, 1, max, "/")
plot(mm.corrected2)
## checking
stopifnot(all(mm.corrected2 == mm.corrected))
```