sweep {base} | R Documentation |
Return an array obtained from an input array by sweeping out a summary statistic.
sweep(x, MARGIN, STATS, FUN="-", check.margin=TRUE, ...)
x |
an array. |
MARGIN |
a vector of indices giving the extents of |
STATS |
the summary statistic which is to be swept out. |
FUN |
the function to be used to carry out the sweep. In the
case of binary operators such as |
check.margin |
logical. If |
... |
optional arguments to |
The consistency check among STATS
, MARGIN
and x
is stricter if STATS
is an array than if it is a vector.
In the vector case, some kinds of recycling are allowed without a
warning. Use sweep(x,MARGIN,as.array(STATS))
if STATS
is a vector and you want to be warned if any recycling occurs.
An array with the same shape as x
, but with the summary
statistics swept out.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
apply
on which sweep
used to be based;
scale
for centering and scaling.
require(stats) # for median
med.att <- apply(attitude, 2, median)
sweep(data.matrix(attitude), 2, med.att)# subtract the column medians
## More sweeping:
A <- array(1:24, dim = 4:2)
## no warnings in normal use
sweep(A, 1, 5)
(A.min <- apply(A, 1, min)) # == 1:4
sweep(A, 1, A.min)
sweep(A, 1:2, apply(A, 1:2, median))
## warnings when mismatch
sweep(A, 1, 1:3)## STATS does not recycle
sweep(A, 1, 6:1)## STATS is longer
## exact recycling:
sweep(A, 1, 1:2)## no warning
sweep(A, 1, as.array(1:2))## warning