We will here use the create_table_forestplot
and
dessin_forest_plot
functions in the Data & Functions
page.
Download Forest_autom.R
# Data used
set.seed(143)
lung$bras <- sample(c('A','B'), nrow(lung), replace=TRUE)
lung$status2 <- sample(0:2, nrow(lung), replace=TRUE, prob=c(0.6, 0.25, 0.15))
lung$status <- lung$status-1
lung$ecog[lung$ph.ecog %in% c(0,1)] <- '01'
lung$ecog[lung$ph.ecog %in% c(2,3)] <- '23'
lung <- lung[,c("bras","time","status","status2","age","sex","ecog","meal.cal")]
create_table_forestplot
functioncov <- c("age","sex","ecog","meal.cal")
quali <- rep(1,length(cov))
quali[cov %in% c("age","meal.cal")] <-0
tabforest1 <- create_table_forestplot(data_frame=lung,
covariables=cov,
var_quali_ou_quanti=quali,
modele_souhaite="cox",
bras="bras",
var_dinteret="status",
delai_dinteret="time")
Subset | A (Events/Pts) | B (Events/Pts) | HR (95%CI) | Pvalue_interaction |
---|---|---|---|---|
age | > 0.2 | |||
≤63 | 46/67 | 34/50 | 1.17 (0.75 - 1.82) | |
>63 | 51/63 | 34/48 | 0.97 (0.63 - 1.5) | |
sex | > 0.2 | |||
1 | 62/77 | 50/61 | 1.09 (0.75 - 1.58) | |
2 | 35/53 | 18/37 | 0.91 (0.51 - 1.61) | |
ecog | > 0.1 | |||
01 | 67/98 | 52/78 | 1.22 (0.85 - 1.75) | |
23 | 30/32 | 15/19 | 0.71 (0.38 - 1.32) | |
meal.cal | 0.99 | |||
≤975 | 40/55 | 25/36 | 1.1 (0.67 - 1.82) | |
>975 | 37/48 | 32/42 | 1.1 (0.68 - 1.76) | |
All patients | 97/130 | 68/98 | 1.06 (0.78 - 1.45) |
Here is another example where optional parameters are used:
nom.var <- c("Age (years)","Gender","ECOG","Calories consumed")
levels.var <- c("Male","Female","0-1","2-3")
tabforest2 <- create_table_forestplot(data_frame=lung,
covariables=cov, nom_var=nom.var,
levels_var=levels.var,
var_quali_ou_quanti=quali,
modele_souhaite="cox",
bras="bras", nom_bras=c("Arm A","Arm B"),
var_dinteret="status",
delai_dinteret="time",
percent=TRUE)
Subset | Arm A (Events/Pts) | Arm B (Events/Pts) | HR (95%CI) | Pvalue_interaction |
---|---|---|---|---|
Age (years) | > 0.2 | |||
≤63 | 46/67 (69%) | 34/50 (68%) | 1.17 (0.75 - 1.82) | |
>63 | 51/63 (81%) | 34/48 (71%) | 0.97 (0.63 - 1.5) | |
Gender | > 0.2 | |||
Male | 62/77 (81%) | 50/61 (82%) | 1.09 (0.75 - 1.58) | |
Female | 35/53 (66%) | 18/37 (49%) | 0.91 (0.51 - 1.61) | |
ECOG | > 0.1 | |||
0-1 | 67/98 (68%) | 52/78 (67%) | 1.22 (0.85 - 1.75) | |
2-3 | 30/32 (94%) | 15/19 (79%) | 0.71 (0.38 - 1.32) | |
Calories consumed | 0.99 | |||
≤975 | 40/55 (73%) | 25/36 (69%) | 1.1 (0.67 - 1.82) | |
>975 | 37/48 (77%) | 32/42 (76%) | 1.1 (0.68 - 1.76) | |
All patients | 97/130 (52%) | 68/98 (69%) | 1.06 (0.78 - 1.45) |
In the example above, the covariates, the levels of the categorical variables and the treatment arms are named. The percentages of the numbers are also displayed.
dessin_forest_plot
functionHere is an example of a forest plot without the optional arguments:
dessin_forest_plot(data_frame=lung,
covariables=cov,
var_quali_ou_quanti=quali,
modele_souhaite="cox",
bras="bras",
var_dinteret="status",
delai_dinteret="time")
We can:
dessin_forest_plot(data_frame=lung,
covariables=cov, nom_var=nom.var,
levels_var=levels.var,
var_quali_ou_quanti=quali,
modele_souhaite="cox",
bras="bras", nom_bras=c("Arm A","Arm B"),
var_dinteret="status",
delai_dinteret="time")
dessin_forest_plot(data_frame=lung,
covariables=cov, nom_var=nom.var,
levels_var=levels.var,
var_quali_ou_quanti=quali,
modele_souhaite="cox",
bras="bras", nom_bras=c("Arm A","Arm B"),
var_dinteret="status",
delai_dinteret="time",
pos_graphique=2,
col=fpColors(box="palegreen4", lines="palegreen3", summary="palegreen4"),
forme=fpDrawNormalCI)
dessin_forest_plot(data_frame=lung,
covariables=cov, nom_var=nom.var,
levels_var=levels.var,
var_quali_ou_quanti=quali,
modele_souhaite="cox",
bras="bras", nom_bras=c("Arm A","Arm B"),
var_dinteret="status",
delai_dinteret="time",
pos_graphique=2,
col=fpColors(box="palegreen4", lines="palegreen3", summary="palegreen4"),
forme=fpDrawNormalCI,
boxsize=0.8)
dessin_forest_plot(data_frame=lung,
covariables=cov, nom_var=nom.var,
levels_var=levels.var,
var_quali_ou_quanti=quali,
modele_souhaite="cox",
bras="bras", nom_bras=c("Arm A","Arm B"),
var_dinteret="status",
delai_dinteret="time",
cut_off=c(70,950),
pos_graphique=2,
col=fpColors(box="palegreen4", lines="palegreen3", summary="palegreen4"),
forme=fpDrawNormalCI,
boxsize=0.8)
dessin_forest_plot(data_frame=lung,
covariables=cov, nom_var=nom.var,
levels_var=levels.var,
var_quali_ou_quanti=quali,
modele_souhaite="cox",
bras="bras", nom_bras=c("Arm A","Arm B"),
var_dinteret="status",
delai_dinteret="time",
cut_off=c(70,950),
xlog=TRUE,
pos_graphique=2,
col=fpColors(box="palegreen4", lines="palegreen3", summary="palegreen4"),
forme=fpDrawNormalCI)
dessin_forest_plot(data_frame=lung,
covariables=cov, nom_var=nom.var,
levels_var=levels.var,
var_quali_ou_quanti=quali,
modele_souhaite="cox",
bras="bras", nom_bras=c("Arm A","Arm B"),
var_dinteret="status",
delai_dinteret="time",
cut_off=c(70,950),
xlog=TRUE,
pos_graphique=2,
col=fpColors(box="palegreen4", lines="palegreen3", summary="palegreen4"),
forme=fpDrawNormalCI,
favors=c("Favors A","Favors B"),
favors_fontsize=10)
dessin_forest_plot(data_frame=lung,
covariables=cov, nom_var=nom.var,
levels_var=levels.var,
var_quali_ou_quanti=quali,
modele_souhaite="cox",
bras="bras", nom_bras=c("Arm A","Arm B"),
var_dinteret="status",
delai_dinteret="time",
cut_off=c(70,950),
median=TRUE,
xlog=TRUE,
pos_graphique=2,
col=fpColors(box="palegreen4", lines="palegreen3", summary="palegreen4"),
forme=fpDrawNormalCI,
favors=c("Favors A","Favors B"),
favors_fontsize=10)
dessin_forest_plot(data_frame=lung,
covariables=cov, nom_var=nom.var,
levels_var=levels.var,
var_quali_ou_quanti=quali,
modele_souhaite="log",
bras="bras", nom_bras=c("Arm A","Arm B"),
var_dinteret="status",
pos_graphique=2,
col=fpColors(box="palegreen4", lines="palegreen3", summary="palegreen4"),
forme=fpDrawNormalCI)
dessin_forest_plot(data_frame=lung,
covariables=cov, nom_var=nom.var,
levels_var=levels.var,
var_quali_ou_quanti=quali,
modele_souhaite="finegray",
bras="bras", nom_bras=c("Arm A","Arm B"),
var_dinteret="status2", failcode=1,
delai_dinteret="time",
pos_graphique=2,
col=fpColors(box="palegreen4", lines="palegreen3", summary="palegreen4"),
forme=fpDrawNormalCI)
dessin_forest_plot(data_frame=lung,
covariables=cov, nom_var=nom.var,
levels_var=levels.var,
var_quali_ou_quanti=quali,
modele_souhaite="finegray",
bras="bras", nom_bras=c("Arm A","Arm B"), label_bras="# success/ # patients",
var_dinteret="status2", failcode=1,
delai_dinteret="time",
digit=2, fixed_digit=TRUE,
test=NULL,
pos_graphique=0,
col=fpColors(box="palegreen4", lines="palegreen3", summary="palegreen4"),
forme=fpDrawNormalCI,
print_pval = TRUE)
This document is a work of the statistics team in the Biostatistics and Medical Information Department at Saint-Louis Hospital in Paris (SBIM).
Developed and updated by Noémie Bigot and Anouk Walter-Petrich
noemie.bigot@aphp.fr; anouk.walter-petrich@u-paris.fr
Based on The R Graph Gallery by Yan Holtz.