Create a field for each parameter. For booleans you can use new_switch_field(<VALUE>) and new_select_field(values, choices) for other parameters. You can use the existing all_cols for dynamic choices.
🧪 Exercise 1: solution
new_cardinal09_block <-function(id_var ="USUBJID",arm_var ="ARM",saffl_var ="SAFFL",pref_var ="AEDECOD",show_colcounts =TRUE, ...) {1 all_cols <-function(data) colnames(data)2 fields <-list(id_var =new_select_field(id_var, all_cols, title ="ID"),arm_var =new_select_field(arm_var, all_cols, title ="ARM"),saffl_var =new_select_field(saffl_var, all_cols, title ="SAFFL"),pref_var =new_select_field(pref_var, all_cols, title ="Pref"),show_colcounts =new_switch_field(show_colcounts, title ="Show column counts") )new_block(fields = fields, )}
1
Construct columns dynamically.
2
Add field(s) for interactivity.
🧪 Exercise 2: create new blocks (expression)
new_cardinal09_block <-function(id_var ="USUBJID",arm_var ="ARM",saffl_var ="SAFFL",pref_var ="AEDECOD",show_colcounts =TRUE, ...) { all_cols <-function(data) colnames(data) fields <-list(id_var =new_select_field(id_var, all_cols, title ="ID"),arm_var =new_select_field(arm_var, all_cols, title ="ARM"),saffl_var =new_select_field(saffl_var, all_cols, title ="SAFFL"),pref_var =new_select_field(pref_var, all_cols, title ="Pref"),show_colcounts =new_switch_field(show_colcounts, title ="Show column counts") )new_block(fields = fields,expr =quote({ cardinal::make_table_09_gtsum(adae = data,# TO DO ) }) )}
Fill in the cardinal::make_table_09_gtsum call to pass in fields name like so: <param_name> = .(field_name). This strange notation is needed by bquote for partial substitution.