Re: ACCEPT question
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
>
Quoted reply history
> 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/