4141# ' VS.VSTESTCD == 'Heart Rate'" contains both
4242# ' VS.VSTESTCD and VS.VSSTRESN as prerequisites, and
4343# ' these columns will be kept through to the ADaM.
44- # '
44+ # ' @param verbose Character string controlling message verbosity. One of:
45+ # ' \describe{
46+ # ' \item{`"message"`}{Show both warnings and messages (default)}
47+ # ' \item{`"warn"`}{Show warnings but suppress messages}
48+ # ' \item{`"silent"`}{Suppress all warnings and messages}
49+ # ' }
4550# '
4651# ' @return dataset
4752# ' @export
5560# ' ds_list <- list(DM = read_xpt(metatools_example("dm.xpt")))
5661# ' build_from_derived(spec, ds_list, predecessor_only = FALSE)
5762build_from_derived <- function (metacore , ds_list , dataset_name = deprecated(),
58- predecessor_only = TRUE , keep = FALSE ) {
63+ predecessor_only = TRUE , keep = FALSE ,
64+ verbose = c(" message" , " warn" , " silent" )) {
5965 if (is_present(dataset_name )) {
6066 lifecycle :: deprecate_warn(
6167 when = " 0.2.0" ,
@@ -68,6 +74,8 @@ build_from_derived <- function(metacore, ds_list, dataset_name = deprecated(),
6874 }
6975 verify_DatasetMeta(metacore )
7076
77+ verbose <- validate_verbose(verbose )
78+
7179 # Deprecate KEEP = TRUE
7280 keep <- match.arg(as.character(keep ), c(" TRUE" , " FALSE" , " ALL" , " PREREQUISITE" ))
7381 if (keep == " TRUE" ) {
@@ -114,7 +122,7 @@ build_from_derived <- function(metacore, ds_list, dataset_name = deprecated(),
114122 str_to_lower()
115123 if (! all(ds_names %in% names(ds_list ))) {
116124 unknown <- keep(names(ds_list ), ~ ! . %in% ds_names )
117- if (length(unknown ) > 0 ) {
125+ if (length(unknown ) > 0 && check_warn( verbose ) ) {
118126 warning(paste0(" The following dataset(s) have no predecessors and will be ignored:\n " ),
119127 paste0(unknown , collapse = " , " ),
120128 call. = FALSE
@@ -124,11 +132,13 @@ build_from_derived <- function(metacore, ds_list, dataset_name = deprecated(),
124132 str_to_upper() %> %
125133 paste0(collapse = " , " )
126134
127- message(paste0(
128- " Not all datasets provided. Only variables from " ,
129- ds_using ,
130- " will be gathered."
131- ))
135+ if (check_message(verbose )) {
136+ message(paste0(
137+ " Not all datasets provided. Only variables from " ,
138+ ds_using ,
139+ " will be gathered."
140+ ))
141+ }
132142
133143 # Filter out any variable that come from datasets that aren't present
134144 vars_w_ds <- vars_w_ds %> %
@@ -162,7 +172,7 @@ build_from_derived <- function(metacore, ds_list, dataset_name = deprecated(),
162172 group_by(ds ) %> %
163173 group_split() %> %
164174 map(get_variables , ds_list , keep , derirvations ) %> %
165- prepare_join(join_by , names(ds_list )) %> %
175+ prepare_join(join_by , names(ds_list ), verbose ) %> %
166176 reduce(full_join , by = join_by )
167177}
168178
@@ -232,10 +242,12 @@ get_variables <- function(x, ds_list, keep, derivations) {
232242# '
233243# ' @param x List of datasets with all columns added
234244# ' @param keys List of key values to join on
245+ # ' @param ds_names Names of datasets
246+ # ' @param verbose Verbosity level
235247# '
236248# ' @return datasets
237249# ' @noRd
238- prepare_join <- function (x , keys , ds_names ) {
250+ prepare_join <- function (x , keys , ds_names , verbose = " message " ) {
239251 out <- list (x [[1 ]])
240252
241253 if (length(x ) > 1 ) {
@@ -248,8 +260,8 @@ prepare_join <- function(x, keys, ds_names) {
248260 intersect(colnames(x [[i ]]))
249261 drop_cols <- c(drop_cols , conflicting_cols )
250262
251- if (length(conflicting_cols ) > 0 ) {
252- cli_inform(c(" i" = " Dropping column(s) from {ds_names[[i]]} due to \\
263+ if (length(conflicting_cols ) > 0 && check_message( verbose ) ) {
264+ cli_inform(c(" i" = " Dropping column(s) from {ds_names[[i]]} due to \
253265 conflict with {ds_names[[j]]}: {conflicting_cols}." ))
254266 }
255267 }
@@ -273,6 +285,12 @@ prepare_join <- function(x, keys, ds_names) {
273285# ' Note: Deprecated in version 0.2.0. The `dataset_name` argument will be removed
274286# ' in a future release. Please use `metacore::select_dataset` to subset the
275287# ' `metacore` object to obtain metadata for a single dataset.
288+ # ' @param verbose Character string controlling message verbosity. One of:
289+ # ' \describe{
290+ # ' \item{`"message"`}{Show both warnings and messages (default)}
291+ # ' \item{`"warn"`}{Show warnings but suppress messages}
292+ # ' \item{`"silent"`}{Suppress all warnings and messages}
293+ # ' }
276294# '
277295# ' @return Dataset with only specified columns
278296# ' @export
@@ -287,7 +305,8 @@ prepare_join <- function(x, keys, ds_names) {
287305# ' select(USUBJID, SITEID) %>%
288306# ' mutate(foo = "Hello")
289307# ' drop_unspec_vars(data, spec)
290- drop_unspec_vars <- function (dataset , metacore , dataset_name = deprecated()) {
308+ drop_unspec_vars <- function (dataset , metacore , dataset_name = deprecated(),
309+ verbose = c(" message" , " warn" , " silent" )) {
291310 if (is_present(dataset_name )) {
292311 lifecycle :: deprecate_warn(
293312 when = " 0.2.0" ,
@@ -299,6 +318,8 @@ drop_unspec_vars <- function(dataset, metacore, dataset_name = deprecated()) {
299318 metacore <- make_lone_dataset(metacore , dataset_name )
300319 }
301320
321+ verbose <- validate_verbose(verbose )
322+
302323 verify_DatasetMeta(metacore )
303324 var_list <- metacore $ ds_vars %> %
304325 filter(is.na(supp_flag ) | ! (supp_flag )) %> %
@@ -308,10 +329,12 @@ drop_unspec_vars <- function(dataset, metacore, dataset_name = deprecated()) {
308329 if (length(to_drop ) > 0 ) {
309330 out <- dataset %> %
310331 select(- all_of(to_drop ))
311- message(paste0(
312- " The following variable(s) were dropped:\n " ,
313- paste0(to_drop , collapse = " \n " )
314- ))
332+ if (check_message(verbose )) {
333+ message(paste0(
334+ " The following variable(s) were dropped:\n " ,
335+ paste0(to_drop , collapse = " \n " )
336+ ))
337+ }
315338 } else {
316339 out <- dataset
317340 }
0 commit comments