# [EpiData-list] how to sum numeric variables even if one of thevariables is empty

epidata-list at lists.umanitoba.ca epidata-list at lists.umanitoba.ca
Mon Aug 6 03:48:06 CDT 2007

```Hi Francesco.
Simplest way I could think of:
Let's say you have 4 possible periods (entry1, exit1... Entry4 exit4):
- Edit the CHK file with a text editor, and prepare some hidden variables which will help store intermediate calculations:
BEFORE RECORD
DEFINE NB1 ####
DEFINE NB2 ####
DEFINE NB3 ####
DEFINE NB4 ####
DEFINE tot1 ###
DEFINE tot2 ###
DEFINE tot3 ###
DEFINE tot4 ###
END

(nbX will store nomber of days for period X... )
(totX will store same number of days, or 0 if 1 of the fields is empty (nbX is empty)

Then, you will add the following check to each exit dates:
D11
AFTER ENTRY
NB1=ROUND(D11-D1)
IF nb1 <> . THEN
TOT1=nb1
ELSE
tot1=0
ENDIF
END
END

(in the example, d1 is entry date of period 1 and d11 is exit date for same period).
Note that NB1 and TOT1 hane not to appear on the entry form as they have been defined in the BEFORE RECORD check block) You can notice that there is a condition which returns zero to totx when nbx can't be calculated.

Last thing to do is to sum up all the TOTx (in the last date check block):
d41
AFTER ENTRY
NB4=ROUND(D41-D4)
IF nb4 <> . THEN
TOT4=nb4
ELSE
tot4=0
ENDIF
totd=sum(tot1,tot2,tot3,tot4)
END
END

(D41 if the last exit date to be entered).

Il y a peut-être plus simple, mais ça marche!
Bon courage!

______________________________________________
Gilles DELMAS
Institut de Veille Sanitaire
Unité infections entériques, alimentaires et zoonoses
12 rue du Val d'Osne 94415 Saint-Maurice cedex - France
+ 33 1 41 79 67 27
g.delmas at invs.sante.fr
______________________________________________

-----Message d'origine-----
De : epidata-list at lists.umanitoba.ca [mailto:epidata-list at lists.umanitoba.ca]
Envoyé : vendredi 3 août 2007 17:36
À : epidata-list at lists.umanitoba.ca
Objet : [EpiData-list] how to sum numeric variables even if one of thevariables is empty

Hello
I would like to make an automatic sum (see: variable "daystotadm") of a series of variables (see: variable "daysadm1-2..."), but if only one of these variable is empty, the automatic calculation using the function SUM give a null result.
Do anyone know a way to solve this problem without the need to enter a value for each variable. In my file I don not necessarily enter all the five lines and the number of days is already a calculated field?
I attach the qes and the check files
Thank you
Francesco Grandesso

QES FILE
---------------------------------------------------------------------------------

Date of entry               Date of exit
Number of days
--------------------------------------------
---------------
{dateentry1} <dd/mm/yyyy>     {dateexit1} <dd/mm/yyyy>
{dateentry2} <dd/mm/yyyy>     {dateexit2} <dd/mm/yyyy>
{dateentry3} <dd/mm/yyyy>     {dateexit3} <dd/mm/yyyy>
{dateentry4} <dd/mm/yyyy>     {dateexit4} <dd/mm/yyyy>
{dateentry5} <dd/mm/yyyy>     {dateexit5} <dd/mm/yyyy>
--------------------------------------------
---------------
days ####

CHK FILE
----------------------------------------------------------------------------------

dateexit1
AFTER ENTRY
END
END

NOENTER
END

.................... and so on for each of the five dateexit* and daysadm* variables

__________________________________________
Francesco Grandesso
EPICENTRE
8, Rue Saint Sabin
75011 Paris, France
tel         +33 (0)1 4021 2847
fax        +33 (0)1 4021 2803
email    Francesco.GRANDESSO at epicentre.msf.org

```