Results from studies examining the effectiveness of beta blockers for reducing mortality and reinfarction.

dat.yusuf1985

Format

The data frame contains the following columns:

tablecharactertable number
idcharactertrial id number
trialcharactertrial name or first author
ainumericnumber of deaths/reinfarctions in treatment group
n1inumericnumber of patients in treatment group
cinumericnumber of deaths/reinfarctions in control group
n2inumericnumber of patients in control group

Details

The dataset contains table 6 (total mortality from short-term trials of oral beta blockers), 9 (total mortality at one week from trials with an initial IV dose of a beta blocker), 10 (total mortality from long-term trials with treatment starting late and mortality from day 8 onwards in long-term trials that began early and continued after discharge), 11 (nonfatal reinfarction from long-term trials of beta blockers), 12a (sudden death in long-term beta blocker trials), and 12b (nonsudden death in long-term beta blocker trials) from the meta-analysis by Yusuf et al. (1985) on the effectiveness of of beta blockers for reducing mortality and reinfarction.

The article also describes what is sometimes called Peto's one-step method for meta-analyzing \(2 \times 2\) table data. This method is implemented in the rma.peto function.

Source

Yusuf, S., Peto, R., Lewis, J., Collins, R., & Sleight, P. (1985). Beta blockade during and after myocardial infarction: An overview of the randomized trials. Progress in Cardiovascular Disease, 27(5), 335–371. https://doi.org/10.1016/s0033-0620(85)80003-7

Concepts

medicine, cardiology, odds ratios, Peto's method

Examples

### copy data into 'dat'
dat <- dat.yusuf1985
dat[dat$table == 6,]
#>    table   id       trial ai n1i ci n2i
#> 1      6  1.1      Balcon 14  56 15  58
#> 2      6  1.2     Clausen 18  66 19  64
#> 3      6  1.3 Multicentre 15 100 12  95
#> 4      6  1.4      Barber 10  52 12  47
#> 5      6  1.5      Norris 21 226 24 228
#> 6      6  1.6      Kahler  3  38  6  31
#> 7      6  1.7     Ledwich  2  20  3  20
#> 8      6  1.8      Snow 1 NA  NA NA  NA
#> 9      6  1.9      Snow 2 19  76 15  67
#> 10     6 1.10    Fuccella 15 106  9 114
#> 11     6 1.11      Briant  5  62  4  57
#> 12     6 1.12        Pitt  0   9  0   8
#> 13     6 1.13    Lombardo  8 133 11 127
#> 14     6 1.14    Thompson  3  48  3  49
#> 15     6 1.15      Hutton  0  16  0  13
#> 16     6 1.16      Tonkin  1  42  1  46
#> 17     6 1.17       Gupta  0  25  3  25
#> 18     6  2.1      Barber 14 221 15 228
#> 19     6  2.2       Yusuf  0  11  0  11
#> 20     6  2.3    Wilcox 1  8 259  7 129
#> 21     6  2.4    Wilcox 2  6 157  4 158
#> 22     6  2.5        CPRG  3 177  2 136

### load metafor package
library(metafor)

### to select a table for the analysis
tab <- "6" # either: 6, 9, 10, 11, 12a, 12b

### to double-check total counts as reported in article
apply(dat[dat$table==tab,4:7], 2, sum, na.rm=TRUE)
#>   ai  n1i   ci  n2i 
#>  165 1900  165 1711 

### meta-analysis using Peto's one-step method
res <- rma.peto(ai=ai, n1i=n1i, ci=ci, n2i=n2i, data=dat, subset=(table==tab))
#> Warning: 1 study with NAs omitted from model fitting.
#> Warning: Some yi/vi values are NA.
res
#> 
#> Equal-Effects Model (k = 21)
#> 
#> I^2 (total heterogeneity / total variability):  0.00%
#> H^2 (total variability / sampling variability): 0.64
#> 
#> Test for Heterogeneity: 
#> Q(df = 17) = 10.8275, p-val = 0.8654
#> 
#> Model Results (log scale):
#> 
#> estimate      se     zval    pval    ci.lb   ci.ub 
#>  -0.0692  0.1194  -0.5794  0.5623  -0.3031  0.1648 
#> 
#> Model Results (OR scale):
#> 
#> estimate   ci.lb   ci.ub 
#>   0.9332  0.7385  1.1792 
#> 
predict(res, transf=exp, digits=2)
#> 
#>  pred ci.lb ci.ub 
#>  0.93  0.74  1.18 
#>