Arms: Class of Arm

ArmsR Documentation

Class of Arm

Description

Create a class of arm.

Public methods in this R6 class are used in developing this package. Thus, we have to export the whole R6 class which exposures all public methods. However, only the public methods in the list below are useful to end users.

  • $add_endpoints() add one or multiple endpoints to the arm.

  • $print() print a summary report of the arm based on example data of its endpoints.

In addition, $generate_data() and $get_endpoints() are for exploratory purpose only. They appear in examples and vignettes to help users understand how this class works, but they are not needed at all in formal simulation once users know how to use this package.

Internal machinery. The remaining public methods ($get_name(), $get_endpoints_name(), $has_endpoint() and $update_endpoint_generator()) are public only because they are invoked on an arm object by other components of the package (trials), which R6 cannot grant through private members. Users should not call them directly.

Value

an R6Class generator object; use arm() to create an arm.

Methods

Public methods


Method new()

initialize an arm

Usage
Arms$new(name, ...)
Arguments
name

name of arm, which is the arm's label in generated data. It must not contain '@' or ';', which are reserved for encoding the treatment switching history (regimen_trajectory) of trials with a regimen.

...

subset condition that is compatible with dplyr::filter. This can be used to specify inclusion criteria of an arm. By default it is not specified, i.e. all data generated by the generator will be used as trial data. More than one conditions can be specified in ....


Method add_endpoints()

add one or multiple endpoints to the arm.

Usage
Arms$add_endpoints(...)
Arguments
...

one or more objects returned from endpoint().

Examples
a <- arm(name = 'trt')
x <- endpoint(name = 'x', type = 'tte',
              generator = rexp) # median = log(2)/1 = 0.7
y <- endpoint(name = 'y', type = 'non-tte', readout = c(y = 0),
              generator = rnorm, sd = 1.4, mean = 0.7)

a$add_endpoints(y, x)

## run it in console to see the summary report
a

print(a) # use the print method


Method get_name()

INTERNAL MACHINERY: DO NOT CALL THIS METHOD DIRECTLY.

return name of arm.

Usage
Arms$get_name()

Method has_endpoint()

INTERNAL MACHINERY: DO NOT CALL THIS METHOD DIRECTLY.

check if the arm has any endpoint. Return TRUE or FALSE.

Usage
Arms$has_endpoint()

Method get_endpoints()

return a list of endpoints in the arm.

Usage
Arms$get_endpoints()

Method get_endpoints_name()

INTERNAL MACHINERY: DO NOT CALL THIS METHOD DIRECTLY.

return name of endpoints registered to the arm.

Usage
Arms$get_endpoints_name()

Method update_endpoint_generator()

INTERNAL MACHINERY: DO NOT CALL THIS METHOD DIRECTLY.

update generator of an endpoint object

Usage
Arms$update_endpoint_generator(endpoint_name, generator, ...)
Arguments
endpoint_name

character. A vector of endpoint names whose generator is updated.

generator

a random number generation (RNG) function. See generator of endpoint().

...

optional arguments for generator.


Method generate_data()

generate arm data.

Usage
Arms$generate_data(n_patients_in_arm)
Arguments
n_patients_in_arm

integer. Number of patients randomized to the arm.


Method print()

print an arm.

Usage
Arms$print(categorical_vars = NULL)
Arguments
categorical_vars

character vector of categorical variables. This can be used to specify variables with limited distinct (numeric) values as categorical variables in summary report.


Method clone()

The objects of this class are cloneable with this method.

Usage
Arms$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

Examples

# Instead of using Arms$new(), please use arm(), a user-friendly
# wrapper. See examples in ?arm


## ------------------------------------------------
## Method `Arms$add_endpoints`
## ------------------------------------------------


a <- arm(name = 'trt')
x <- endpoint(name = 'x', type = 'tte',
              generator = rexp) # median = log(2)/1 = 0.7
y <- endpoint(name = 'y', type = 'non-tte', readout = c(y = 0),
              generator = rnorm, sd = 1.4, mean = 0.7)

a$add_endpoints(y, x)

## run it in console to see the summary report
a

print(a) # use the print method


TrialSimulator documentation built on Sept. 4, 2026, 5:08 p.m.