sum
returns the sum of all the values
present in its arguments.
Usage
# S3 method for default
sum(...)
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.
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