Skip to contents

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

Usage

# S3 method for default
sum(...)

Arguments

...

numeric or complex or logical vectors.

Value

The sum. If all of the ... arguments are of type integer or logical, then the sum is integer when possible and is double otherwise. Integer overflow should no longer happen since R version 3.5.0. For other argument types it is a length-one numeric (double) or complex vector.

NB: the sum of an empty set is zero, by definition.

Details

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.

If na.rm is FALSE an NA or NaN value in any of the arguments will cause a value of NA or NaN to be returned, otherwise NA and NaN values are ignored.

Logical true values are regarded as one, false values as zero. For historical reasons, NULL is accepted and treated as if it were integer(0).

Loss of accuracy can occur when summing values of different signs: this can even occur for sufficiently long integer inputs if the partial sums would cause integer overflow. Where possible extended-precision accumulators are used, typically well supported with C99 and newer, but possibly platform-dependent.

See also

Author

R core team and contributors

Examples


## Pass a vector to sum, and it will add the elements together.
sum(1:5)
#> [1] 15

## Pass several numbers to sum, and it also adds the elements.
sum(1, 2, 3, 4, 5)
#> [1] 15

## In fact, you can pass vectors into several arguments, and everything gets added.
sum(1:2, 3:5)
#> [1] 15

## If there are missing values, the sum is unknown, i.e., also missing, ....
sum(1:5, NA)
#> [1] NA
## ... unless  we exclude missing values explicitly:
sum(1:5, NA, na.rm = TRUE)
#> [1] 15