[ RDocumentation ](/)

Moon  [ ](https://github.com/datacamp/rdocumentation-2.0) [ Learn R
](https://www.datacamp.com/learn/r)

Search all packages and functions

[ base  (version  3.6.2  ) ](/packages/base/versions/3.6.2)

#  sum: Sum of Vector Elements

##  Description

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

##  Usage

    
    
    sum(…, na.rm = FALSE)

##  Arguments

…

numeric or complex or logical vectors.

na.rm

logical. Should missing values (including ` NaN ` ) be removed?

##  Value

The sum. If all of the ` … ` arguments are of type integer or logical, then
the sum is ` [ integer ](/link/integer?package=base&version=3.6.2) ` 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 ](/link/double?package=base&version=3.6.2) ` ) or complex vector.

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

##  S4 methods

This is part of the S4 ` [ Summary
](/link/Summary?package=base&version=3.6.2&to=%3DS4groupGeneric) ` group
generic. Methods for it must use the signature ` x, …, na.rm ` .

‘ [ plotmath ](/link/plotmath?package=base&version=3.6.2) ’ for the use of `
sum ` in plot annotation.

##  Details

This is a generic function: methods can be defined for it directly or via the
` [ Summary ](/link/Summary?package=base&version=3.6.2&to=%3DS3groupGeneric) `
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.

##  References

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

##  See Also

` [ colSums ](/link/colSums?package=base&version=3.6.2) ` for row and column
sums.

##  Examples

[ Run this code
](https://app.datacamp.com/workspace/preview?_tag=rdocs&rdocsPath=packages%2Fbase%2Fversions%2F3.6.2%2Ftopics%2Fsum&utm_source=r-docs&utm_medium=docs&utm_term=sum&utm_content=run_example_in_workspace)

    
    
    # NOT RUN {
    <!-- % for beginners -->
    # }
    # NOT RUN {
    ## Pass a vector to sum, and it will add the elements together.
    sum(1:5)
    
    ## Pass several numbers to sum, and it also adds the elements.
    sum(1, 2, 3, 4, 5)
    
    ## In fact, you can pass vectors into several arguments, and everything gets added.
    sum(1:2, 3:5)
    
    ## If there are missing values, the sum is unknown, i.e., also missing, ....
    sum(1:5, NA)
    ## ... unless  we exclude missing values explicitly:
    sum(1:5, NA, na.rm = TRUE)
    # }
    

Run the code above in your browser using  [ DataCamp Workspace
](https://app.datacamp.com/workspace/preview?_tag=rdocs&rdocsPath=packages%2Fbase%2Fversions%2F3.6.2%2Ftopics%2Fsum&utm_source=r-docs&utm_medium=docs&utm_term=sum&utm_content=run_example_in_workspace)

Powered by  [ DataCamp ](https://www.datacamp.com/)