Skip to contents

Checks if an argument is a symbol

Usage

assert_symbol(arg, optional = FALSE)

Arguments

arg

A function argument to be checked. Must be a symbol. See examples.

optional

Is the checked argument optional? If set to FALSE and arg is NULL then an error is thrown

Value

The function throws an error if arg is not a symbol and returns the input invisibly otherwise.

Examples

library(pharmaversesdtm)
library(dplyr, warn.conflicts = FALSE)
library(rlang)
data(dm)

example_fun <- function(dat, var) {
  var <- assert_symbol(enexpr(var))
  select(dat, !!var)
}

example_fun(dm, USUBJID)
#> # A tibble: 306 × 1
#>    USUBJID    
#>    <chr>      
#>  1 01-701-1015
#>  2 01-701-1023
#>  3 01-701-1028
#>  4 01-701-1033
#>  5 01-701-1034
#>  6 01-701-1047
#>  7 01-701-1057
#>  8 01-701-1097
#>  9 01-701-1111
#> 10 01-701-1115
#> # ℹ 296 more rows

try(example_fun(dm))
#> Error in assert_symbol(enexpr(var)) : 
#>   Argument `var` missing, with no default

try(example_fun(dm, "USUBJID"))
#> Error in assert_symbol(enexpr(var)) : 
#>   `var` must be a symbol but is `"USUBJID"`

try(example_fun(dm, toupper(PARAMCD)))
#> Error in assert_symbol(enexpr(var)) : 
#>   `var` must be a symbol but is an object of class 'call'