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 FALSE (default), no naming
support is done. Else if TRUE, names attributes
of result are set.
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.