Skip to contents

Checks if a variable in a dataset is a date or datetime variable

Usage

assert_date_var(dataset, var, dataset_name = NULL, var_name = NULL)

Arguments

dataset

The dataset where the variable is expected

var

The variable to check

dataset_name

The name of the dataset. If the argument is specified, the specified name is displayed in the error message.

var_name

The name of the variable. If the argument is specified, the specified name is displayed in the error message.

Value

The function throws an error if var is not a date or datetime variable in dataset and returns the input invisibly otherwise.

Examples

library(tibble)
library(lubridate)
#> 
#> Attaching package: ‘lubridate’
#> The following objects are masked from ‘package:base’:
#> 
#>     date, intersect, setdiff, union
library(rlang)

example_fun <- function(dataset, var) {
  var <- assert_symbol(enexpr(var))
  assert_date_var(dataset = dataset, var = !!var)
}

my_data <- tribble(
  ~USUBJID, ~ADT,
  "1",      ymd("2020-12-06"),
  "2",      ymd("")
)

example_fun(
  dataset = my_data,
  var = ADT
)

try(example_fun(
  dataset = my_data,
  var = USUBJID
))
#> Error in assert_date_var(dataset = dataset, var = !!var) : 
#>   `USUBJID` in dataset `dataset` is not a date or datetime variable but is a character vector

example_fun2 <- function(dataset, var) {
  var <- assert_symbol(enexpr(var))
  assert_date_var(
    dataset = dataset,
    var = !!var,
    dataset_name = "your_data",
    var_name = "your_var"
  )
}

try(example_fun2(
  dataset = my_data,
  var = USUBJID
))
#> Error in assert_date_var(dataset = dataset, var = !!var, dataset_name = "your_data",  : 
#>   `your_var` in dataset `your_data` is not a date or datetime variable but is a character vector