3838# ' for risk difference figure.
3939# ' @param color A vector of colors for analysis groups.
4040# ' Default value supports up to 4 groups.
41+ # ' @param ae_col_header Column header for adverse events item columns.
42+ # ' If NULL (default) and "par" specified in `components` from `prepare_ae_forestly()`, uses "Adverse Event".
43+ # ' If NULL and "soc" specified in `components` from `prepare_ae_forestly()`, uses "System Organ Class" for "soc".
4144# ' @param diff_label x-axis label for risk difference.
42- # ' @param col_header Column header for risk difference table columns.
45+ # ' @param diff_col_header Column header for risk difference table columns.
4346# ' If NULL (default), uses "Risk Difference (%) <br> vs. Reference Group".
44- # ' @param fig_header Column header for risk difference figure.
47+ # ' @param diff_fig_header Column header for risk difference figure.
4548# ' If NULL (default), uses "Risk Difference (%) + 95% CI <br> vs. Reference Group".
4649# '
4750# ' @return An `outdata` object.
@@ -70,9 +73,10 @@ format_ae_forestly <- function(
7073 prop_range = NULL ,
7174 diff_range = NULL ,
7275 color = NULL ,
76+ ae_col_header = NULL ,
7377 diff_label = " Treatment <- Favor -> Placebo" ,
74- col_header = NULL ,
75- fig_header = NULL ) {
78+ diff_col_header = NULL ,
79+ diff_fig_header = NULL ) {
7680 display <- tolower(display )
7781
7882 display <- match.arg(
@@ -103,12 +107,20 @@ format_ae_forestly <- function(
103107 reference_name <- outdata $ group [index_reference ]
104108
105109 # Set default headers if not provided
106- if (is.null(col_header )) {
107- col_header <- paste0(" Risk Difference (%) <br> vs. " , reference_name )
110+ if (is.null(ae_col_header )) {
111+ if (" par" %in% outdata $ components ) {
112+ ae_col_header <- " Adverse Event"
113+ } else if (" soc" %in% outdata $ components ) {
114+ ae_col_header <- " System Organ Class"
115+ }
116+ }
117+
118+ if (is.null(diff_col_header )) {
119+ diff_col_header <- paste0(" Risk Difference (%) <br> vs. " , reference_name )
108120 }
109121
110- if (is.null(fig_header )) {
111- fig_header <- paste0(" Risk Difference (%) + 95% CI <br> vs. " , reference_name )
122+ if (is.null(diff_fig_header )) {
123+ diff_fig_header <- paste0(" Risk Difference (%) + 95% CI <br> vs. " , reference_name )
112124 }
113125
114126 # Input checking
@@ -247,7 +259,7 @@ format_ae_forestly <- function(
247259 )
248260 }
249261 columnGroups [[m_group + 1 ]] <- reactable :: colGroup(
250- name = col_header ,
262+ name = diff_col_header ,
251263 html = TRUE ,
252264 columns = names(outdata $ diff )
253265 )
@@ -261,7 +273,7 @@ format_ae_forestly <- function(
261273 show = FALSE
262274 ),
263275 name = reactable :: colDef(
264- header = " Adverse Events " ,
276+ header = ae_col_header ,
265277 minWidth = width_term , align = " right"
266278 ),
267279 soc_name = reactable :: colDef(
@@ -338,7 +350,7 @@ format_ae_forestly <- function(
338350
339351 # difference format
340352 col_diff_fig <- list (diff_fig = reactable :: colDef(
341- header = fig_header ,
353+ header = diff_fig_header ,
342354 defaultSortOrder = " desc" ,
343355 width = ifelse(" fig_diff" %in% display , width_fig , 0 ),
344356 align = " center" ,
0 commit comments