# sum

##### Sum of Vector Elements

`sum`

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

- Keywords
- arith

##### Usage

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

##### Arguments

- …
numeric or complex or logical vectors.

- na.rm
logical. Should missing values (including

`NaN`

) be removed?

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

##### Value

The sum. If all of the \(M\) `…`

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.

##### S4 methods

This is part of the S4 `Summary`

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

.

‘plotmath’ for the use of `sum`

in plot annotation.

##### References

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

##### See Also

`colSums`

for row and column sums.

##### Examples

`library(base)`

```
# 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)
# }
```

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

### Community examples

**bgoel2812@gmail.com**at Apr 16, 2020 base v3.6.2

sum(seq(1,50))

**bipin.kumar@live.com**at May 4, 2018 base v3.5.0

**bipin.kumar@live.com**at May 4, 2018 base v3.5.0

**bipin.kumar@live.com**at May 4, 2018 base v3.5.0

**bipin.kumar@live.com**at May 4, 2018 base v3.5.0

**bipin.kumar@live.com**at May 4, 2018 base v3.5.0

**bipin.kumar@live.com**at May 4, 2018 base v3.5.0

**bipin.kumar@live.com**at May 4, 2018 base v3.5.0

**fani_kumar@hotmail.com**at Jan 6, 2018 base v3.4.3

sum(seq(1,10))

**fani_kumar@hotmail.com**at Jan 6, 2018 base v3.4.3

**jhgonzalez@adinet.com.uy**at Jan 5, 2018 base v3.4.3

``` sum(1,5) x<-1 ```

**jhgonzalez@adinet.com.uy**at Jan 5, 2018 base v3.4.3

``` sum(1,5) x<-1 ```

**jhgonzalez@adinet.com.uy**at Jan 5, 2018 base v3.4.3

``` ``` sum(1,5) ``` ```

**jhgonzalez@adinet.com.uy**at Jan 5, 2018 base v3.4.3

> sum(seq(1,20)) >

**jhgonzalez@adinet.com.uy**at Jan 5, 2018 base v3.4.3

> sum(seq(1,20)) >

**jhgonzalez@adinet.com.uy**at Jan 5, 2018 base v3.4.3

> sum(seq(1,20)) >

**jhgonzalez@adinet.com.uy**at Jan 5, 2018 base v3.4.3

**jhgonzalez@adinet.com.uy**at Jan 5, 2018 base v3.4.3

**jhgonzalez@adinet.com.uy**at Jan 5, 2018 base v3.4.3