Validate Package Parameters
check_package_parameters.Rd
This function checks the structure and content of a given package parameter file (data.frame or data.table) for use in pre2dup
workflows.
The validation covers required columns, uniqueness, data types, value ranges, and logical consistency.
The function stops execution and prints error messages if critical errors are found.
Usage
check_package_parameters(
dt,
pack_atc = NULL,
pack_id = NULL,
pack_ddd_low = NULL,
pack_ddd_usual = NULL,
pack_dur_min = NULL,
pack_dur_usual = NULL,
pack_dur_max = NULL,
print_all = FALSE,
return_data = FALSE
)
Arguments
- dt
data.frame or data.table containing the package parameters to validate.
- pack_atc
Character. Name of the column containing the Anatomical Therapeutic Chemical (ATC) Classification code.
- pack_id
Character. Name of the column containing the package identifier (e.g., vnr code).
- pack_ddd_low
Character. Name of the column with the minimum daily DDD value.
- pack_ddd_usual
Character. Name of the column with the usual daily DDD value.
- pack_dur_min
Character. Name of the column with the minimum package duration (in days).
- pack_dur_usual
Character. Name of the column with the usual package duration (in days).
- pack_dur_max
Character. Name of the column with the maximum package duration (in days).
- print_all
Logical. If TRUE, all warnings are printed. If FALSE, only the first 5 problematic rows are printed.
- return_data
Logical. If TRUE and no errors are detected, returns a data.table with the validated columns and proper types. If FALSE, only a message is printed.
Value
If return_data = TRUE
, returns a data.table containing only the validated columns, with converted types.
If errors are detected, the function stops and prints error messages.
Details
The following checks are performed:
Existence and naming of required columns
Uniqueness of package identifiers (no duplicates)
Validity of ATC codes (no missing or invalid values, correct type)
Validity of package IDs (should be numeric, no missing values)
Validity of DDD and duration values (no negative or missing values, logical value ranges)
Correct order of minimum, usual, and maximum durations
Correct order of minimum and usual DDD values
If any errors are found, the function stops execution and prints all error messages.
Examples
ATC <- c("N05AA01", rep("N05AH03", 3), "N05AX13")
vnr <- c(141473, 80307, 145698, 457780 , 412581)
lower_ddd = c(0.167, 0.500, 0.500, 0.375, 0.714)
usual_ddd <- c(0.33, 1.00, 1.00, 0.75, 1.00)
minimum_duration <- c(33, 9.3, 9.3, 33.3, 14)
usual_duration <- c(100, 28, 28, 100, 30)
maximum_duration <- c(200, 56, 56, 200, 42)
df_pack_params <- data.frame(ATC, vnr, lower_ddd, usual_ddd,
minimum_duration, usual_duration, maximum_duration)
package_parameters <- check_package_parameters(
dt = df_pack_params,
pack_atc = "ATC",
pack_id = "vnr",
pack_ddd_low = "lower_ddd",
pack_ddd_usual = "usual_ddd",
pack_dur_min = "minimum_duration",
pack_dur_usual = "usual_duration",
pack_dur_max = "maximum_duration",
return_data = TRUE
)
#> Checks passed for 'df_pack_params'
package_parameters
#> ATC vnr lower_ddd usual_ddd minimum_duration usual_duration
#> <char> <int> <num> <num> <num> <num>
#> 1: N05AA01 141473 0.167 0.33 33.0 100
#> 2: N05AH03 80307 0.500 1.00 9.3 28
#> 3: N05AH03 145698 0.500 1.00 9.3 28
#> 4: N05AH03 457780 0.375 0.75 33.3 100
#> 5: N05AX13 412581 0.714 1.00 14.0 30
#> maximum_duration
#> <num>
#> 1: 200
#> 2: 56
#> 3: 56
#> 4: 200
#> 5: 42