Product of Vector Elements

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

prod(…, na.rm = FALSE)

numeric or complex or logical vectors.


logical. Should missing values be removed?


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).


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.


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

See Also

sum, cumprod, cumsum.

plotmath’ for the use of prod in plot annotation.

  • prod
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 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) ```