When doses are scheduled with ii
and addl
, the object is expanded to
include one record for every dose. In the result, no record with have
ii
or addl
set to non-zero value.
realize_addl(x, ...)
# S3 method for data.frame
realize_addl(
x,
warn = FALSE,
mark_new = FALSE,
fill = c("inherit", "na", "locf"),
...
)
# S3 method for ev
realize_addl(x, ...)
a data_set
data frame or an event object (see details)
not used
if TRUE
a warning is issued if no ADDL
or
addl
column is found
if TRUE
, a flag is added to indicate new columns
specifies how to handle non-dose related data columns in new data set records; this option is critical when handling data sets with time-varying, non-dose-related data items; see details
A data_set
data.frame or event object, consistent with the type of x
.
The ii
and addl
columns will all be set to zero. The result is always
ungrouped.
If no addl
column is found the data frame is returned and
a warning is issued if warn
is true. If ii
,
time
, or evid
are missing, an error is generated.
If a grouped data.frame (via dplyr::group_by()
) is passed, it will be
ungrouped.
Use caution when passing in data that has non-dose-related data
columns that vary within a subject and pay special attention
to the fill
argument. By definition, realize_addl
will add new rows to your data frame and it is not obvious
how the non-dose-related data should be handled in these new
rows. When inherit
is chosen, the new records have
non-dose-related data that is identical to the originating
dose record. This should be fine when these data items are not
varying with time, but will present a problem when the data
are varying with time. When locf
is chosen,
the missing data are filled in with NA
and an
last observation carry forward operation is applied to
every column in the data set. This may not be what
you want if you already had missing values in the input
data set and want to preserve that missingness. When na
is chosen, the missing data are filled in with NA
and
no locf
operation is applied. But note that these
missing values may be problematic for a mrgsolve simulation
run. If you have any time-varying columns or missing data
in your data set, be sure to check that the output from
this function is what you were expecting.
e <- ev(amt = 100, ii = 12, addl = 3)
realize_addl(e)
#> Events:
#> time amt ii addl cmt evid
#> 1 0 100 0 0 1 1
#> 2 12 100 0 0 1 1
#> 3 24 100 0 0 1 1
#> 4 36 100 0 0 1 1
a <- ev(amt = 100, ii = 12, addl = 2, WT = 69)
b <- ev(amt = 200, ii = 24, addl = 2, WT = 70)
c <- ev(amt = 50, ii = 6, addl = 2, WT = 71)
e <- ev_seq(a,b,c)
realize_addl(e, mark_new = TRUE)
#> Events:
#> time amt ii addl cmt evid WT .addl_row_
#> 1 0 100 0 0 1 1 69 0
#> 2 12 100 0 0 1 1 69 1
#> 3 24 100 0 0 1 1 69 1
#> 4 36 200 0 0 1 1 70 0
#> 5 60 200 0 0 1 1 70 1
#> 6 84 200 0 0 1 1 70 1
#> 7 108 50 0 0 1 1 71 0
#> 8 114 50 0 0 1 1 71 1
#> 9 120 50 0 0 1 1 71 1