Skip to contents

Adds a record for derived RR based on heart rate for each by group (e.g., subject and visit) where the source parameters are available.

Note: This is a wrapper function for the more generic derive_param_computed().

The analysis value of the new parameter is derived as $$\frac{60000}{HR}$$


  set_values_to = exprs(PARAMCD = "RRR"),
  hr_code = "HR",
  filter = NULL



Input dataset

The variables specified by the by_vars argument are expected to be in the dataset. PARAMCD, and AVAL are expected as well.

The variable specified by by_vars and PARAMCD must be a unique key of the input dataset after restricting it by the filter condition (filter parameter) and to the parameters specified by hr_code.


Grouping variables

For each group defined by by_vars an observation is added to the output dataset. Only variables specified in by_vars will be populated in the newly created records.

Permitted Values: list of variables created by exprs() e.g. exprs(USUBJID, VISIT)


Variables to be set

The specified variables are set to the specified values for the new observations. For example exprs(PARAMCD = "MAP") defines the parameter code for the new parameter.

Permitted Values: List of variable-value pairs


HR parameter code

The observations where PARAMCD equals the specified value are considered as the heart rate assessments.

Permitted Values: character value


An expression providing the unit of the parameter

The result is used to check the units of the input parameters.

Permitted Values: A variable of the input dataset or a function call


Filter condition

The specified condition is applied to the input dataset before deriving the new parameter, i.e., only observations fulfilling the condition are taken into account.

Permitted Values: a condition


The input dataset with the new parameter added. Note, a variable will only be populated in the new parameter rows if it is specified in by_vars.



adeg <- tribble(
  "01-701-1015", "HR", "Heart Rate", 70.14, "beats/min", "BASELINE",
  "01-701-1015", "QT", "QT Duration", 370, "msec", "WEEK 2",
  "01-701-1015", "HR", "Heart Rate", 62.66, "beats/min", "WEEK 1",
  "01-701-1015", "RR", "RR Duration", 710, "msec", "WEEK 2",
  "01-701-1028", "HR", "Heart Rate", 85.45, "beats/min", "BASELINE",
  "01-701-1028", "QT", "QT Duration", 480, "msec", "WEEK 2",
  "01-701-1028", "QT", "QT Duration", 350, "msec", "WEEK 3",
  "01-701-1028", "HR", "Heart Rate", 56.54, "beats/min", "WEEK 3",
  "01-701-1028", "RR", "RR Duration", 842, "msec", "WEEK 2"

  by_vars = exprs(USUBJID, VISIT),
  set_values_to = exprs(
    PARAMCD = "RRR",
    PARAM = "RR Duration Rederived (msec)",
    AVALU = "msec"
  get_unit_expr = AVALU
#> # A tibble: 13 × 6
#>    USUBJID     PARAMCD PARAM                          AVAL AVALU     VISIT   
#>    <chr>       <chr>   <chr>                         <dbl> <chr>     <chr>   
#>  1 01-701-1015 HR      Heart Rate                     70.1 beats/min BASELINE
#>  2 01-701-1015 QT      QT Duration                   370   msec      WEEK 2  
#>  3 01-701-1015 HR      Heart Rate                     62.7 beats/min WEEK 1  
#>  4 01-701-1015 RR      RR Duration                   710   msec      WEEK 2  
#>  5 01-701-1028 HR      Heart Rate                     85.4 beats/min BASELINE
#>  6 01-701-1028 QT      QT Duration                   480   msec      WEEK 2  
#>  7 01-701-1028 QT      QT Duration                   350   msec      WEEK 3  
#>  8 01-701-1028 HR      Heart Rate                     56.5 beats/min WEEK 3  
#>  9 01-701-1028 RR      RR Duration                   842   msec      WEEK 2  
#> 10 01-701-1015 RRR     RR Duration Rederived (msec)  855.  msec      BASELINE
#> 11 01-701-1015 RRR     RR Duration Rederived (msec)  958.  msec      WEEK 1  
#> 12 01-701-1028 RRR     RR Duration Rederived (msec)  702.  msec      BASELINE
#> 13 01-701-1028 RRR     RR Duration Rederived (msec) 1061.  msec      WEEK 3