Hi Jackie and Manisha,
IF multiple conditions are specified in either the ACCEPT=(list) or
IGNORE=(list) option on $DATA, they are connected by an implied ".OR."
operator regardless of whether they are listed within parentheses with a
comma between the conditions or in separate statements. So, the original
specification Jackie gives below should, in fact, keep only those
records where DVID=1 OR CYC=1, as intended.
I suspect that the difference between what was expected and what
actually happened has to do with either: (a) the presence of the
IGNORE=# option or (b) the layout of the dataset.
For case (a), the records with '#" in the first column will be excluded
given the presence of the IGNORE=# option. In the sample you provided,
they correspond with two of records where DVID=1 (which may have been
counted in the records you expected to keep).
For case (b), the '.' values in the sample dataset provided in the DV
and MDV columns line up right next to the value in the column to the
left without a space between and therefore, may not be being read as the
next column as intended. This would result in all of the columns after
the '.' being off by 1. For example, in row 2 of the sample dataset, it
may be that NONMEM is reading DAY= 1., DV=0, TIME=3, and DVID=1. This
would throw off your counts and can be confirmed by examining the FDATA
file.
Kind regards,
Jill
--
Jill Fiedler-Kelly
VP, Pharmacometric Services & CSO
Cognigen Corporation
395 Youngs Road
Buffalo, NY 14221
(v) 716.633.3463, ext. 228
(f) 716.633.7404
(e) [email protected]
http://www.cognigencorp.com/
Manisha Lamba wrote:
Hi Jackie: You are correct that the comma (',') in ACCEPT command
works as an "AND" so in your case it includes only those records which
satisfy both conditions i.e where DVID=1 *and* CYC=1. If you want to
evaluate 'OR' instead, the only way I can think of is it give multiple
ACCEPT commands.
ACCEPT = (CYC.EQ.1)
ACCEPT = (DVID.EQ.1).
This should include all those records where either condition is true.
Cheers,
Manisha
On Wed, Jul 6, 2011 at 6:59 AM, Jia Ji <[email protected]
<mailto:[email protected]>> wrote:
Hi,
I encounted a problem when using ACCEPT in NONMEM. In my dataset,
I want to extract observations with DVID=1 *or* CYC=1. When I used
ACCEPT=(DVID.EQ.1,CYC.EQ.1), it gave a total number of obs as the
number of obs with CYC=1 only, but much less than the number of
obs with either DVID=1 or CYC=1. But if I want to extract
observations with DVID=1 *and* CYC=1, it works fine using
IGNORE=(DVID.NE.1,CYC.NE.1). So I don't understand why ACCEPT is
not working here. I attached a sample of my dataset and control
stream. I would highly appreciate any feedback/advice on my
question. Thank you very much!
Jackie
****************************
Dataset
#READ ID CYC DAY DV TIME DVID MDV
. 49102 1 1 0 0 1 0
. 49102 1 1 . 0 3 1
. 49102 1 8 1 7 1 0
. 49102 1 15 0 14 1 0
. 49102 1 22 0 21 1 0
. 49102 2 1 0 42 1 0
# 49102 2 8 . 49 1 .
. 49102 2 8 1 49 3 0
# 49102 2 15 . 56 1 .
Control stream
$PROBLEM RUN101
$INPUT READ ID CYC DAY DV TIME DVID MDV
$DATA ***.csv IGNORE=# ACCEPT=(DVID.EQ.1,CYC.EQ.1)
$PRED
...
--
Jill Fiedler-Kelly
VP, Pharmacometric Services & CSO
Cognigen Corporation
395 Youngs Road
Buffalo, NY 14221
(v) 716.633.3463, ext. 228
(f) 716.633.7404
(e) [email protected]
http://www.cognigencorp.com/