# How to add and subtract values from an average?

Say I have 100 numbers that are averaged:

number of values = 100
total sum of values = 2000
mean = 2000 / 100 => 20


If I want to add a value and find out the new average:

total sum of values = 2000 + 100
mean = 2100 / 101 => 20.79


If I want to subtract a value and find out the new average:

total sum of values = 2100 - 100
mean = 2000 / 100 => 20


It seems to work, but is the above correct?

Is this the proper way to add/subtract values from a average without having to re-sum all the 100 numbers first?

-

$s=\frac{a_1+...+a_n}{n}$.

If you want the average of $a_1,...,a_n$ and $a_{n+1}$, then $s'=\frac{a_1+...+a_n+a_{n+1}}{n+1}=\frac{ns+a_{n+1}}{n+1} = \frac{(n+1)s+a_{n+1}}{n+1} - \frac{s}{n+1} = s + \frac{a_{n+1}-s}{n+1}$

If you want the average of $a_1,...,a_{n-1}$ then $s''=\frac{a_1+...+a_{n-1}}{n-1}=\frac{ns-a_n}{n-1}$.

-
And $ns$ is the old sum, as you can derive from the first equation. – Ross Millikan Feb 16 '11 at 13:21
I'm tempted to downvote as ns is not explained in the answer – Celeritas Aug 22 '14 at 20:32
At first I commented that @501's answer was clearer but realized I didn't fully understand why the question worked. This answer, while denser, actually explains the result. – gwg Dec 10 '14 at 23:05
@Celeritas $ns = n \cdot s$, $n$ and $s$ are defined quantities in the post. – Axoren Jan 13 '15 at 15:13

To put it on a programmatic way, and since the question is add / substract:

Substract a value:

average = ((average * nbValues) - value) / (nbValues - 1);


average = average + ((value - average) / nbValues)

to add an value to an exisitng average we only must know for how much values the average is calculated: $$average_{new} = average_{old} + \frac{ value_{new} - average_{old}}{size_{new}}$$