Imports a csv dataset as IQRnlmeData object

Performs additional checks if the header of the dataset is adequate and determines the "headerIdent" string based on the header names. If the optional covNames, catNames, and regressorNames arguments are provided, it also will make the correct settings for these in the "headerIdent" string.

IQRsysData(input, covNames = NULL, catNames = NULL, regressorNames = NULL)

  covNames = NULL,
  catNames = NULL,
  regressorNames = NULL,



Path to an NLME datafile or data.frame


Vector with names of continuous covariates (matching column names in the dataset (datafile).


Vector with names of categorical covariates (matching column names in the dataset (datafile).


Vector with names of regrossors (matching column names in the dataset (datafile).


If TRUE then it is assumed that SysFit is used ... which allows to relax some of the checks that are needed for NONMEM and MONOLIX. Do not use if you do not know exactly what you are doing!


If at least one of the required columns is not present an error will be shown, otherwise the original data will be returned


Spaces in character strings will be replaced by ":::" for NONMEM and commata in character strings will be replaced by ";" - to allow for a CSV output without the need for quotes (not liked by NONMEM).

There is an intentional difference between an IQRnlmeData object and an IQRdataGENERAL object that is exported as an NLME dataset. The separation allows to use datasets for NLME modeling that have not been created through IQRtools. This means that for now, the IQRnlmeData object does not re-use information from the attributes of an IQRdataGENERAL object. This might change in the future.

In order to support also the changes in MONOLIX >=2018 we will do the following changes to the data during import to an IQRnlmeData object:

  1. YTYPE: NA for dosing events

  2. ADM: NA for observation events

IQRtools requires the presence of the following columns in an IQRnlmeData object that is used for fitting:

=============== ===================================================
IXGDF A column with index numbers of the records in the dataset either defined for this dataset alone as 1,2,3, ... or defined in a dataset from which this one here has been derived and the IXGDF entries make the link between the remaining records and the original records.
USUBJID Unique subject identifier
ID Modeling tool specific subject identifier (typically numeric)
TIME Time relative to first dose (per subject)
TIMEPOS Time from first event in the dataset (per subject)
TAD Time after previous dose
DV Observed value or 0 for doses or LLOQ value if CENS=1
MDV Missing data flag
EVID Event ID (0 for observations, 1 for dosing records)
CENS Censoring flag (0 uncensored, 1 left censored)
AMT Dosing amount if dose event, 0 if observation event
ADM Number of the input if a dose, NA if an observation
RATE This column is only used for NONMEM. This column is NOT used for the specification of the infusion rate. This column is only used to indicate with 0 a bolus and with -2 that either the TINF column should be used for the infusion duration (if INFUSION dosing) or that the infusion time should be estimated (if ABSORPTION0 dosing) - in the latter case the entry in the TINF column is not considered. If RATE colum is not defined as discussed above, it will be updated and a new dataset for NONMEM will be generated automatically. For MONOLIX this column is not used.
TINF Infusion time - used for both NONMEM and MONOLIX. 0 if bolus, >0 if infusion. If infusion (or 0th order absorption) duration is selected to be estimated then the values in this column are neglected.
YTYPE or CMT If YTYPE: Number of output if observation, NA if dosing event. If CMT: Number of output if observation, number of state to which to add dose if dosing event.

An OCC column might be present and can be used to define distinct occasions for consideration of IOV in the modeling. An OCC column needs to contain numeric entries (integers only allowed).