knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )

```
library(metawho)
```

The goal of **metawho** is to provide simple R implementation of "Meta-analytical method to Identify Who Benefits Most from Treatments" (called 'deft' approach, see reference #2).

**metawho** is powered by R package **metafor** and does not support dataset contains individuals for now. Please use stata package **ipdmetan** if you are more familar with stata code.

You can install the stable release of **metawho** from CRAN with:

install.packages("metawho")

You can install the development version of **metawho** from GitHub with:

remotes::install_github("ShixiangWang/metawho")

Visualization feature of **metawho** needs the recent version of **forestmodel**, please run the following commands:

remotes::install_github("ShixiangWang/forestmodel")

This is a basic example which shows you how to solve a common problem.

If you have HR and confidence intervals, please run `deft_prepare()`

firstly.

library(metawho) ### specify hazard ratios (hr) hr <- c(0.30, 0.11, 1.25, 0.63, 0.90, 0.28) ### specify lower bound for hr confidence intervals ci.lb <- c(0.09, 0.02, 0.82, 0.42, 0.41, 0.12) ### specify upper bound for hr confidence intervals ci.ub <- c(1.00, 0.56, 1.90, 0.95, 1.99, 0.67) ### specify sample number ni <- c(16L, 18L, 118L, 122L, 37L, 38L) ### trials trial <- c("Rizvi 2015", "Rizvi 2015", "Rizvi 2018", "Rizvi 2018", "Hellmann 2018", "Hellmann 2018") ### subgroups subgroup = rep(c("Male", "Female"), 3) entry <- paste(trial, subgroup, sep = "-") ### combine as data.frame wang2019 = data.frame( entry = entry, trial = trial, subgroup = subgroup, hr = hr, ci.lb = ci.lb, ci.ub = ci.ub, ni = ni, stringsAsFactors = FALSE ) wang2019 = deft_prepare(wang2019)

Here we can directly load example data.

library(metawho) data("wang2019") wang2019

Use `deft_do()`

function to obtain model results.

# The 'Male' is the reference (res = deft_do(wang2019, group_level = c("Male", "Female")))

Use `deft_show()`

to visualize results.

To show all entries without model result.

p1 = deft_show(res, element = "all") p1

To show result of subgroup analysis.

p2 = deft_show(res, element = "subgroup") p2

The analysis above reproduced Figure 5 of reference #1.

The result of `deft_do()`

contains models constructed by **metafor** package, so you can use features
provided by **metafor** package, e.g. plot the model results with `forest()`

function from **metafor** package.

forest(res$subgroup$model, showweights = TRUE)

Modify plot, more see `?forest.rma`

.

forest(res$subgroup$model, showweights = TRUE, atransf = exp, slab = res$subgroup$data$trial, xlab = "Hazard ratio") op = par(no.readonly = TRUE) par(cex = 0.75, font = 2) text(-11, 4.5, "Trial(s)", pos = 4) text(9, 4.5, "Hazard Ratio [95% CI]", pos = 2) par(op)

More usage about model fit, prediction and plotting please refer to metafor package.

- Wang, Shixiang, et al. "The predictive power of tumor mutational burden in lung cancer immunotherapy response is influenced by patients' sex." International journal of cancer (2019).
- Fisher, David J., et al. "Meta-analytical methods to identify who benefits most from treatments: daft, deluded, or deft approach?." bmj 356 (2017): j573.

**Any scripts or data that you put into this service are public.**

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.