Calculates the product for each row (column) in a matrix.
product(x, idxs = NULL, na.rm = FALSE, ...)rowProds(x, rows = NULL, cols = NULL, na.rm = FALSE,
method = c("direct", "expSumLog"), ..., useNames = TRUE)
colProds(x, rows = NULL, cols = NULL, na.rm = FALSE,
method = c("direct", "expSumLog"), ..., useNames = TRUE)
Returns a numeric
vector
of
length N (K).
A vector
indicating subset of elements to
operate over. If NULL
, no subsetting is done.
If TRUE
, missing values are
excluded.
Not used.
A vector
indicating subset of rows to
operate over. If NULL
, no subsetting is done.
A vector
indicating subset of columns to
operate over. If NULL
, no subsetting is done.
A character
string specifying how each
product is calculated.
If TRUE
(default), names
attributes of the result are set, otherwise not.
Note, if method = "expSumLog"
, na.rm = FALSE
, and x
contains missing values (NA
or
NaN
), then the calculated value is also
missing value. Note that it depends on platform whether
NaN
or NA
is returned
when an NaN
exists, cf.
is.nan
().
Henrik Bengtsson
If method = "expSumLog"
, then then product
() function is
used, which calculates the product via the logarithmic transform (treating
negative values specially). This improves the precision and lowers the risk
for numeric overflow. If method = "direct"
, the direct product is
calculated via the prod
() function.