Learn R Programming

⚠️There's a newer version (0.6.0) of this package.Take me there.

blandr: a Bland-Altman Method Comparison package for R

blandr carries out Bland Altman analyses (also known as a Tukey mean-difference plot) as described by JM Bland and DG Altman in 1986.

This package was started in 2015 as existing Bland-Altman R functions did not calculate confidence intervals. The blandr was created to fulfil this need.

blandr has been improved iteratively over time, and hopefully this library will be useful to researchers as an open-source and reproducible package.

The benefits

  • Calculates confidence intervals
  • Outputs ggplot2 information to create extensible plots
  • Has a basic Jamovi module, to allow GUI analysis for those not comfortable with command line tools
  • Has a function to chart for proportional bias
  • If you get me through GitHub, I will do my best to maintain and improve this package

Citations

You can find the citation information through the usual R citation commands:

citation("blandr")
#> 
#> To cite blandr in publications, please use:
#> 
#>   Datta, D. (2017). blandr: a Bland-Altman Method Comparison
#>   package for R. Zenodo. DOI:10.5281/zenodo.824514
#>   https://github.com/deepankardatta/blandr
#> 
#> A BibTeX entry for LaTeX users is
#> 
#>   @Manual{,
#>     title = {blandr: a Bland-Altman Method Comparison package for R},
#>     author = {Deepankar Datta},
#>     doi = {10.5281/zenodo.824514},
#>     year = {2017},
#>     url = {https://github.com/deepankardatta/blandr},
#>   }

The DOI will refer to all versions of blandr. If you need to cite specific releases DOIs, the full versioning information can be found at Zenodo (https://zenodo.org/record/824515), with the full source code at the blandr GitHub page (https://github.com/deepankardatta/blandr/).

Installation

blandr is available as a package from CRAN and can be installed with the following commands:

install.packages("blandr")
library(blandr)

You can install the blandr development version, hosted on github at https://github.com/deepankardatta/blandr/, with the following commands:

install.packages("devtools")
devtools::install_github("deepankardatta/blandr")

Example

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

library(blandr)
load(file="Data/bland.altman.PEFR.1986.rda")
blandr.display ( bland.altman.PEFR.1986$WrightFirst , bland.altman.PEFR.1986$MiniWrightFirst , sig.level=0.95 )
blandr.draw( bland.altman.PEFR.1986$WrightFirst , bland.altman.PEFR.1986$MiniWrightFirst )

The Jamovi module

One of the benefits of the current version is that it includes a basic module for the Jamovi GUI statistical spreadsheet (https://www.jamovi.org/). I'm a believer in making this tool more accesible and Jamovi is a way to do this. The Jamovi module is still under development, and will be submitted to the Jamovi module repository soon. However until this is done, it can be installed using the following commands:

install.packages('jmvtools', repos=c('https://repo.jamovi.org', 'https://cran.r-project.org'))
library(jmvtools)
jmvtools::install()

Why the name?

Thinking of a unique name was difficult - and it wasn't worth spending/wasting time on this initially. Curiously it was going to be called BlandAltmanEdinburgh (as I was in Edinburgh at the time I made this) until I considerd uploading this to GitHub and CRAN.

Hadley Wickham has an excellent set of documentation on creating packages. The one on naming (http://r-pkgs.had.co.nz/package.html) is worth a read. Reflecting on it a lot of the naming issues are to prevent collisions with similarly named packages, so using blandaltman in the name might have cause problems. Mirroring the pre-existing plyr and knitr I thought I'd just add a "r" to "bland": yes it doesn't involve Altman's name, but I couldn't think of anything better.

If you can think of a better name please let me know!

Further information

Further information can be found in the function help files in the package, as well as in the vignettes.

Future improvements

Whilst this package is good enough for use, there is the scope for iterative improvements.

Future works include:

  • There are a further few deprecated functions to delete (I just need to finish a few projects first!!).
  • The package needs to have to go through some validation and testing
  • For further testing I need to write some testhtat modules
  • The function descriptions needs to be improved
  • Some of the roxygen2 documentation can be improved by calling the import parameters function
  • I want to add a few more sample data packs: including some of my own if possible
  • Development of a report generator
  • Development of the Jamovi module

Help wanted!

Comments on the code, suggestions for improvement, verification tests, validation studies, and even code contributions would be gratefully accepted. Email me at [email protected] and I'll try and get back to you as soon as possible. Please do bear in mind this is a side-project, and I can be otherwise busy with a lot of other work.

Copy Link

Version

Install

install.packages('blandr')

Monthly Downloads

932

Version

0.5.1

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Deepankar Datta

Last Published

May 10th, 2018

Functions in blandr (0.5.1)

blandr.display.and.plot

(DEPRECATED) Bland-Altman display and plot for R
jamoviBAanalysis

Bland-Altman Analysis
blandr.dataset.sbp

Function to load Close systolic blood pressure dataset from internet
blandr.display.and.draw

Bland-Altman display and draw for R
blandr.output.text

Bland-Altman summary statistics display function
blandr.plot

(DEPRECATED) Bland-Altman drawing function for R
blandr.dataset.o2sats

Function to load Bland-Altman oxygen saturation dataset from internet
blandr.dataset.pefr

Function to load Bland-Altman PEFR dataset from internet
blandr.dataset.fibre

Function to load D'arbela mean velocity of circumferential fibre shortening dataset from internet
blandr.plot.ggplot

Bland-Altman plotting function, using ggplot2
blandr.dataset.load

Function to load example data sets
bland.altman.PEFR.1986

Sample PEFR comparison data from Bland-Altman (1986)
blandr.data.preparation

Data preparation for method comparison analysis
blandr.method.comparison

Bland-Altman method comparison
blandr.plot.rplot

Bland-Altman plotting function, using basic R drawing functions
blandr.output.report

Bland-Altman report generator
blandr.plot.limits

Bland-Altman plot limits for R
blandr.statistics

Bland-Altman statistics for R
jamoviBAplotHistogram

Differences Histogram and Density Curve
jamoviBAstats

Bland-Altman Raw Statistics
jamoviBAplotQQ

Differences Q-Q Plot
blandr.draw

Bland-Altman drawing function for R
blandr.plot.qq

Bland-Altman differences QQ plot
blandr.plot.normality

Bland-Altman histogram and density plot
giavarina.2015

Sample comparison data from Giavarina (2015)