This function operates in the environment of its caller
(using eval.parent, similar to Function like C-Preprocessor-Macros
).
Different from the other utility function that work
in the caller's environment (prep_prepare_dataframes), It has no side
effects except that the argument
of the calling function specified in arg_name is normalized (set to its
default or a general default if missing, variable names being all white
space replaced by NAs).
It expects two objects in the caller's environment: ds1 and meta_data.
meta_data is the metadata data frame and ds1 is produced by a preceding
call of prep_prepare_dataframes using meta_data and study_data.
util_correct_variable_use(
arg_name,
allow_na,
allow_more_than_one,
allow_null,
allow_all_obs_na,
allow_any_obs_na,
min_distinct_values,
need_type,
need_scale,
role = "",
overwrite = TRUE,
do_not_stop = FALSE,
remove_not_found = TRUE
)util_correct_variable_use2(
arg_name,
allow_na,
allow_more_than_one,
allow_null,
allow_all_obs_na,
allow_any_obs_na,
min_distinct_values,
need_type,
need_scale,
role = arg_name,
overwrite = TRUE,
do_not_stop = FALSE,
remove_not_found = TRUE
)
character Name of a function argument of the caller of util_correct_variable_use
logical default = FALSE. allow NAs in the variable names
argument given in arg_name
logical default = FALSE. allow more than one
variable names in arg_name
logical default = FALSE. allow an empty variable name
vector in the argument arg_name
logical default = TRUE. check observations for not
being all NA
logical default = TRUE. check observations for
being complete without any NA
integer Minimum number of distinct observed values of a study variable
character if not NA, variables must be of data type
need_type according to the metadata,
can be a pipe (|) separated list of
allowed data types. Use ! to exclude
a type. See DATA_TYPES for the
predefined variable types of the
dataquieR concept.
character if not NA, variables must be of scale level
need_scale according to the metadata,
can be a pipe (|) separated list of
allowed scale levels. Use ! to exclude
a level. See SCALE_LEVELS for the
predefined scale levels of the
dataquieR concept.
character variable-argument role. Set different defaults for
all allow-arguments and need_type of
this util_correct_variable_use.. If given, it
defines the intended use
of the verified argument. For typical arguments and
typical use cases, roles
are predefined in .variable_arg_roles.
The role's defaults can be overwritten by the
arguments. If role is "" (default),
the standards are allow_na = FALSE,
allow_more_than_one = FALSE, allow_null = FALSE,
allow_all_obs_na = TRUE, allow_any_obs_na = TRUE,
and need_type = NA.
Use util_correct_variable_use2 for using the
arg_name as default for role.
See .variable_arg_roles for currently available
variable-argument roles.
logical overwrite vector of variable names
to match the labels given in label_col.
logical do not throw an error, if one of the variables
violates allow_all_obs_na, allow_any_obs_na or
min_distinct_values. Instead, the variable will be
removed from arg_name in the parent environment
with a warning. This is helpful for functions which
work with multiple variables.
TODO: Not yet implemented
util_correct_variable_use and util_correct_variable_use2 differ only in
the default of the argument role.
util_correct_variable_use and util_correct_variable_use2 put strong
effort on producing compressible
error messages to the caller's caller (who is typically an end user of
a dataquieR function).
The function ensures, that a specified argument of its caller that refers variable names (one or more as character vector) matches some expectations.
This function accesses the caller's environment!
.variable_arg_roles
Other robustness_functions:
util_as_valid_missing_codes(),
util_check_one_unique_value(),
util_empty(),
util_ensure_character(),
util_ensure_in(),
util_ensure_suggested(),
util_expect_scalar(),
util_fix_rstudio_bugs(),
util_is_integer(),
util_is_numeric_in(),
util_is_valid_missing_codes(),
util_match_arg(),
util_observations_in_subgroups(),
util_only_NAs(),
util_stop_if_not(),
util_warn_unordered()
Other robustness_functions:
util_as_valid_missing_codes(),
util_check_one_unique_value(),
util_empty(),
util_ensure_character(),
util_ensure_in(),
util_ensure_suggested(),
util_expect_scalar(),
util_fix_rstudio_bugs(),
util_is_integer(),
util_is_numeric_in(),
util_is_valid_missing_codes(),
util_match_arg(),
util_observations_in_subgroups(),
util_only_NAs(),
util_stop_if_not(),
util_warn_unordered()