| Type: | Package | 
| Title: | Flexible Forest Plots | 
| Version: | 0.2.5 | 
| Description: | Simplifies the creation and customization of forest plots (alternatively called dot-and-whisker plots). Input classes accepted by 'forplo' are data.frame, matrix, lm, glm, and coxph. 'forplo' was written in base R and does not depend on other packages. | 
| License: | GPL-3 | 
| Encoding: | UTF-8 | 
| Language: | en-US | 
| Depends: | R (≥ 3.5.0) | 
| VignetteBuilder: | knitr, rmarkdown, lattice | 
| RoxygenNote: | 7.1.2 | 
| Suggests: | knitr, rmarkdown, lattice, MASS, meta, survival, extrafont | 
| NeedsCompilation: | no | 
| Packaged: | 2023-02-16 00:56:24 UTC; arinetencate-hoek | 
| Author: | Vincent ten Cate, PhD [cre, aut] | 
| Maintainer: | "Vincent ten Cate, PhD" <vincent10kd@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2023-02-16 01:10:02 UTC | 
forplo - flexible forest plots with R
Description
forplo is an R package meant to simplify the creation and customization of forest plots (alternatively called dot-and-whisker plots).
Input classes accepted by forplo are data.frame, matrix, lm, glm, and coxph. forplo was written in base R and does not depend on other packages.
For extensive examples and how to use all arguments for customization, please refer to the package vignette.
Usage
forplo(
  mat,
  em = "OR",
  row.labels = NULL,
  linreg = FALSE,
  prop = FALSE,
  pval = NULL,
  xlim = xlimits,
  fliprow = NULL,
  flipbelow1 = FALSE,
  flipsymbol = "*",
  ci.sep = "-",
  ci.lwd = 1.5,
  ci.edge = TRUE,
  font = "sans",
  groups = NULL,
  grouplabs = NULL,
  group.space = 1,
  group.italics = FALSE,
  indent.groups = NULL,
  left.align = FALSE,
  favorlabs = NULL,
  add.arrow.left = FALSE,
  add.arrow.right = FALSE,
  arrow.left.length = 3,
  arrow.right.length = 3,
  arrow.vadj = 0,
  sort = FALSE,
  char = 20,
  size = 1.5,
  col = 1,
  insig.col = "gray",
  scaledot.by = NULL,
  scaledot.factor = 0.75,
  diamond = NULL,
  diamond.col = col,
  diamond.line = TRUE,
  add.columns = NULL,
  add.colnames = NULL,
  column.spacing = 3,
  right.bar = FALSE,
  rightbar.ticks = 0,
  left.bar = TRUE,
  leftbar.ticks = 0,
  shade.every = NULL,
  shade.col = "red",
  shade.alpha = 0.05,
  fill.by = NULL,
  fill.colors = NULL,
  fill.labs = NULL,
  legend = FALSE,
  legend.vadj = 0,
  legend.hadj = 0,
  legend.spacing = 1,
  margin.left = NULL,
  margin.top = 0,
  margin.bottom = 2,
  margin.right = 10,
  horiz.bar = FALSE,
  title = NULL,
  save = FALSE,
  save.path = NULL,
  save.name = NULL,
  save.type = "png",
  save.width = 9,
  save.height = 4.5
)
Arguments
| mat | An n*3 data.frame or matrix, or a regression model of class lm, glm or coxph. | 
| em | Effect measure to be displayed (e.g. OR, RR, HR). | 
| row.labels | Labels to display as variable names (character vector of length nrow(mat)). | 
| linreg | Set to TRUE if the estimates are from a linear regression model. | 
| prop | Set to TRUE if the estimates are proportions. | 
| pval | A numeric or character vector of same length as nrow(mat), with p-values. | 
| xlim | A numeric vector of length 2 indicating the limits of the x-axis. | 
| fliprow | A numeric vector indicating which estimates should be inverted (only for ratios). | 
| flipbelow1 | Set to TRUE to invert all ratios below 1. | 
| flipsymbol | A symbol to display besides inverted estimates. Asterisk by default. | 
| ci.sep | The separator between confidence intervals. Dash by default. | 
| ci.lwd | Line width for the confidence interval 'whiskers'. | 
| ci.edge | Set to FALSE to remove the 90 degree edges at the end of the CI whiskers. | 
| font | Controls the font family. 'Calibri' by default. Note: monospaced fonts work poorly. | 
| groups | A numeric vector of length nrow(mat) indicating group membership of each element. | 
| grouplabs | A character vector of equal length to the number of groups, with the labels of each group. | 
| group.space | A single numeric value to indicate how much empty rows should be between grouped estimates. | 
| group.italics | Set to TRUE to italicize the group labels. | 
| indent.groups | A numeric vector indicating which groups to indent (works only when left.align==TRUE) | 
| left.align | Set to TRUE to left align variable and group labels. | 
| favorlabs | A character vector of length 2, providing labels for underneath the x-axis (e.g. c('favors control','favors intervention')). | 
| add.arrow.left | Adds an arrow pointing left underneath the x-axis. | 
| add.arrow.right | Adds an arrow pointing right underneath the x-axis. | 
| arrow.left.length | Controls the length of the arrow pointing left. | 
| arrow.right.length | Controls the length of the arrow pointing right. | 
| arrow.vadj | Allows to adjust the vertical placement of the arrows. | 
| sort | Set to TRUE to sort the rows by effect size (not compatible with groups or diamond). | 
| char | Controls the character to display for the dots. Equivalent to pch in the base R plot function. | 
| size | Controls the size of the dots. Equivalent to cex in the base R plot function. | 
| col | Controls the color of the dots. Equivalent to col in the base R plot function. | 
| insig.col | Controls the color of the CI whiskers when crossing the null line. Gray by default. | 
| scaledot.by | Numeric vector of length nrow(mat) to indicate relative importance of each variable (e.g. sample size, weight). | 
| scaledot.factor | Scaling factor (scalar) for scaledot.by, to adapt the size of all scaled dots at once. | 
| diamond | Numeric vector indicating the rows that should be displayed as diamonds (e.g. for meta-analytic estimates). | 
| diamond.col | Controls the color of the diamonds. | 
| diamond.line | Shows a dotted vertical line through the last diamond. Set to FALSE to disable. | 
| add.columns | A data.frame of nrow(mat) with additional columns to add to the right of the plot. | 
| add.colnames | A character vector of length ncol(add.columns) with column labels for these columns. | 
| column.spacing | A constant that controls the horizontal spacing between added columns. | 
| right.bar | Set to TRUE to show a vertical bar directly to the left of the estimates. | 
| rightbar.ticks | Controls the tick marks on the right axis. | 
| left.bar | Set to FALSE to remove the horizontal bar on the left axis. | 
| leftbar.ticks | Controls the tick marks on the left axis. | 
| shade.every | Controls row shading option. A value of 1 colors every other row, a value of 2 per blocks of 2, etc. Non-integer values also allowed. | 
| shade.col | Controls the default row shading color. Default is 'red'. | 
| shade.alpha | Controls the transparency of the row shading color. Default is 0.05. | 
| fill.by | Numeric vector of length nrow(mat) indicating color group membership of each element. | 
| fill.colors | Character vector of length unique(fill.by), with colors for each color group. | 
| fill.labs | Character vector of length fill.colors, specifying the legend labels. | 
| legend | Set to TRUE to display a legend if fill.colors is not NULL. | 
| legend.vadj | Controls the vertical placement of the legend. | 
| legend.hadj | Controls the horizontal placement of the legend. | 
| legend.spacing | Controls the spacing between legend items. | 
| margin.left | Controls size of left margin. | 
| margin.top | Controls size of top margin. | 
| margin.bottom | Controls size of bottom margin. | 
| margin.right | Controls size of right margin. | 
| horiz.bar | Set to TRUE to display a horizontal bar below the plot. | 
| title | Title to display above the plot. Equivalent to title in the base R plot function. | 
| save | Set to TRUE to save the plot (also requires save.name and save.path) in 300 dpi resolution. | 
| save.path | Indicates folder where the plot should be saved. | 
| save.name | Name of the plot (should not include filetype extension). | 
| save.type | Filetype of the saved plot. Default is .png, but also supports .wmf on Windows. | 
| save.width | Width of the saved plot in inches. Default is 9. | 
| save.height | Height of the saved plot in inches. Default is 4.5. | 
Value
The function plots in the user's plot window, but does not return anything.
Examples
#==== Create some regression models ==========
mod1 <- lm(Sepal.Length~Sepal.Width+Species+Petal.Width+Petal.Length,iris)
#==== Example forest plots====================
# default plot for linear regression model
forplo(mod1)
# customized plot for linear regression model
forplo(mod1,
       row.labels=c('Sepal width','Versicolor','Virginica','Petal width','Petal length'),
       groups=c(1,2,2,3,3),
       grouplabs=c('Sepal traits','Species','Petal traits'),
       shade.every=1,
       shade.col='gray',
       left.align=TRUE,
       xlim=c(-2,2),
       title='Linear regression with grouped estimates')
## More examples are given in the vignette.