Skip to contents

Assigns a SAS format from a variable level metadata to a given data frame. If no format is found for a given variable, it is set as an empty character vector. This is stored in the attribute.


xportr_format(.df, metadata = NULL, domain = NULL, metacore = deprecated())



A data frame of CDISC standard.


A data frame containing variable level metadata. See 'Metadata' section for details.


Appropriate CDSIC dataset name, e.g. ADAE, DM. Used to subset the metadata object. If none is passed, then name of the dataset passed as .df will be used.


[Deprecated] Previously used to pass metadata now renamed with metadata


Data frame with SASformat attributes for each variable.


The argument passed in the 'metadata' argument can either be a metacore object, or a data.frame containing the data listed below. If metacore is used, no changes to options are required.

For data.frame 'metadata' arguments three columns must be present:

  1. Domain Name - passed as the 'xportr.domain_name' option. Default: "dataset". This is the column subset by the 'domain' argument in the function.

  2. Format Name - passed as the 'xportr.format_name' option. Default: "format". Character values to update the '' attribute of the column. This is passed to haven::write to note the format.

  3. Variable Name - passed as the 'xportr.variable_name' option. Default: "variable". This is used to match columns in '.df' argument and the metadata.


adsl <- data.frame(
  USUBJID = c(1001, 1002, 1003),
  BRTHDT = c(1, 1, 2)

metadata <- data.frame(
  dataset = c("adsl", "adsl"),
  variable = c("USUBJID", "BRTHDT"),
  format = c(NA, "DATE9.")

adsl <- xportr_format(adsl, metadata)