NONMEM Users Network Archive

Hosted by Cognigen

RE: Use of ACCEPT in $DATA

From: Leonov, Sergei <Sergei.Leonov>
Date: Thu, 24 Aug 2017 23:25:36 +0000

Hi Dennis,

Unfortunately, my reply will not provide a solution to your problem. It is more about drawing attention to the fact that checking conditions numerically is not exactly the same as checking conditions on a piece of a paper, because of rounding. I’m sure that the users of the List are well aware of this fact, just a reminder…

A simple example, I did this in Matlab, you can repeat it in R or other programming language. I won’t waste your time by describing how I came to this example. Compare the output of two expressions:
>> a1=0.06;
>> a2=0.05 + 0.01;

You would expect the equality between the two values, a1 and a2, right? True, on paper. Here is the output of these two values with 20 decimals.
>> fprintf('%22.20f\n',a1)
>> fprintf('%22.20f\n',a2)
And, of course, the output of the logical expression (a1 ==a2) is FALSE.

Sergei Leonov
ICON Innovation Center

From: owner-nmusers
Sent: Thursday, August 24, 2017 6:45 PM
To: Dennis Fisher; nmusers om
Subject: RE: [NMusers] Use of ACCEPT in $DATA

Hi Dennis,

I don’t have an elegant solution for you (and I’ve been pining for the use of combined Boolean operations like “TIME.GT.5.9.AND.TIME.LT.6.1” for a long time).

An inelegant solution could be to run the model once with a write statement to see if you can identify the value like 6.0000001 and use it. That would probably be fragile to different processor/compiler/math library combinations, so I’d probably end up making the additional indicator column for certainty.



From: owner-nmusers
Sent: Thursday, August 24, 2017 6:16 PM
To: nmusers<mailto:nmusers
Subject: [NMusers] Use of ACCEPT in $DATA

NONMEM 7.4.1


I am trying to use the ACCEPT option in $DATA in order to select a subset of records (to evaluate the impact of the # of samples/subject on confidence intervals).

I used the following code:
               ACCEPT=(TIME=0, TIME=1, TIME=2, TIME=4, TIME=6, TIME=24)

NMTRAN then creates a dataset but — to my surprise — TIME=6 is not in the dataset (all the others are).

I am copying the first few rows of the input dataset so that you can see what is being provided to NMTRAN:


The underlined / boldfaced value (6) in the final row is the problem.

I assume that NMTRAN is reading that value as something other than 6.0 (e.g., 6.000001) and thereby omitting it.

I have reviewed NMHELP to see if there is some other way to accomplish this. Ideally, there would be something like:
but that does not appear to be supported.

The alternative is to modify the dataset to include many possible MDV/EVID columns. However, it would be more elegant to do this in the control stream.
Or, if there is some way to find out the exact value that NMTRAN sees, I could specify that value.

Any help would be appreciated.


Dennis Fisher MD
P < (The "P Less Than" Company)
Phone / Fax: 1-866-PLessThan (1-866-753-7784)<>
<br /><br />
ICON plc made the following annotations.
This e-mail transmission may contain confidential or legally privileged information that is intended only for the individual or entity named in the e-mail address. If you
are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or reliance upon the contents of this e-mail is strictly prohibited. If
you have received this e-mail transmission in error, please reply to the sender, so that ICON plc can arrange for proper delivery, and then please delete the message.

Thank You,

ICON plc
South County Business Park
Dublin 18
Registered number: 145835

Received on Thu Aug 24 2017 - 19:25:36 EDT

The NONMEM Users Network is maintained by ICON plc. Requests to subscribe to the network should be sent to:

Once subscribed, you may contribute to the discussion by emailing: