# prod

##### Product of Vector Elements

`prod`

returns the product of all the values
present in its arguments.

- Keywords
- arith

##### Usage

`prod(…, na.rm = FALSE)`

##### Arguments

- …
numeric or complex or logical vectors.

- na.rm
logical. Should missing values be removed?

##### Details

If `na.rm`

is `FALSE`

an `NA`

value in any of the arguments will cause
a value of `NA`

to be returned, otherwise
`NA`

values are ignored.

This is a generic function: methods can be defined for it
directly or via the `Summary`

group generic.
For this to work properly, the arguments `…`

should be
unnamed, and dispatch is on the first argument.

Logical true values are regarded as one, false values as zero.
For historical reasons, `NULL`

is accepted and treated as if it
were `numeric(0)`

.

##### Value

The product, a numeric (of type `"double"`

) or complex vector of length one.
**NB:** the product of an empty set is one, by definition.

##### S4 methods

This is part of the S4 `Summary`

group generic. Methods for it must use the signature
`x, …, na.rm`

.

##### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
*The New S Language*.
Wadsworth & Brooks/Cole.

##### See Also

‘plotmath’ for the use of `prod`

in plot annotation.

##### Examples

`library(base)`

```
# NOT RUN {
print(prod(1:7)) == print(gamma(8))
# }
```

*Documentation reproduced from package base, version 3.6.2, License: Part of R 3.6.2*

### Community examples

**richie@datacamp.com**at Jan 17, 2017 base v3.3.2

Pass a vector to `prod()`, and it will multiply the elements together. ```{r} prod(1:5) ``` Pass several numbers to `prod()`, and it also multiplies the elements. ```{r} prod(1, 2, 3, 4, 5) ``` In fact, you can pass vectors into several arguments, and everything gets multiplied. ```{r} prod(1:2, 3:5) ``` If there are any missing values, the product is also missing. ```{r} prod(1:5, NA) ``` You can exclude missing values by setting `na.rm = TRUE`. ```{r} prod(1:5, NA, na.rm = TRUE) ```