ACCEPT question

5 messages 4 people Latest: Jul 07, 2011

ACCEPT question

From: Jia Ji Date: July 06, 2011 technical
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 ...

Re: ACCEPT question

From: Manisha Lamba Date: July 06, 2011 technical
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]> 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 > ... >

Re: ACCEPT question

From: Jill Fiedler-Kelly Date: July 06, 2011 technical
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/

Re: ACCEPT question

From: Jia Ji Date: July 07, 2011 technical
Hi Jill and Manisha, Thank you very much for your replies! My problem is probably not due to (a), because it gave the same results if I remove all rows with "#" in front. By looking at FDATA file and output file, I found actually it reads the correct number of data records, but total number of obs records is a bit less (shown as below). So what could cause the difference between these two numbers? NO. OF DATA RECS IN DATA SET: 1493 TOT. NO. OF OBS RECS: 1378 Many thanks! Jackie
Quoted reply history
On Wed, Jul 6, 2011 at 3:34 PM, Jill Fiedler-Kelly < [email protected]> wrote: > ** > 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]> 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/ > >

Re: ACCEPT question

From: Jill . Fiedler-Kelly Date: July 07, 2011 technical
Hi Jackie, Typically, the difference between the number of data records (total record count) and the number of observation records is the number of dosing records. Kind regards, Jill > Hi Jill and Manisha, > > Thank you very much for your replies! My problem is probably not due to > (a), > because it gave the same results if I remove all rows with "#" in front. > By > looking at FDATA file and output file, I found actually it reads the > correct > number of data records, but total number of obs records is a bit less > (shown > as below). So what could cause the difference between these two numbers? > > NO. OF DATA RECS IN DATA SET: 1493 > TOT. NO. OF OBS RECS: 1378 > > Many thanks! > > Jackie >
Quoted reply history
> On Wed, Jul 6, 2011 at 3:34 PM, Jill Fiedler-Kelly < > [email protected]> wrote: > >> ** >> 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]> 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/ >> >> >