R programming

The Biostatistics Department provides R programming services to all faculty and students. This page summarizes those services, but special requests not listed here are welcome. Email the Department's R programmer at mkleinsa@umich.edu.

R package support


Depending on the size and scope of your project, we take already developed R code and turn it into a distributable R package. The Department's R programmer provides various package development services. Here is a loose guideline of what is needed to bridge the gap between R code and an R package:

  • Send an R script with the functions to include in the package
  • At least one example run of each function
  • A test data set or simulation function
  • I can help implement standard R functions, such as print, summary, print.summary, etc
  • Depending on the size of project and available time, I occasionally write new code. The feasibility of this option is decided on a case-by-case basis.
  • Document - for each function, I provide a Word template to fill in essential documentation. This includes short descriptions of the function parameters
  • DOI’s are now required by CRAN, so we recommend obtaining one for the package
  • Share - we ensure packages pass checks and release to CRAN/Github


The Department's R programmer provides various package maintenance services, including:

  • Hosting on Github (and other repositories)
  • Shiny app hosting on Shinyapps.io (provided by the department)
  • Submission to CRAN repository (and other repositories) and maintenance

Software listings

The Department maintains a catalog of all software developed by faculty and students regardless of programming language. Currently, over 130 packages are cataloged. Navigate to the software landing page under Computing.

To add a new package to the catalog, email mkleinsa@umich.edu with the following:

  • Department collaborators
  • Links to website and code repository
  • Short description
  • Reference(s)

Learning Resources

Upcoming workshops

  • data.table: Reduce programming and compute time for data manipulation operations in R (Wednesday, Jan. 26 @ 4pm). RSVP here.
  • Job Wrapper Scripts: Learn to submit cluster jobs with nested parameter sweeps easily (Thursday, Jan. 27 @ 4pm). RSVP here.
  • Targets: Pipeline toolkit for statistics and data science in R (Wednesday, Feb. 2 @ 4pm). RSVP here.
  • Files and their Properties: Basic filesystem organization, getting file properties (ls), file permissions (chmod), file ownership (chown), copying (cp), and moving (mv) (Thursday, Feb. 3 @ 4pm). RSVP here.
  • R package development 1: Learn the basics of R package development (Wednesday, Feb. 9 @ 4pm). RSVP here.
  • Vim Text Editor: Learn the basics of the Vim text editor (Thursday, Feb. 10 @ 4pm). RSVP here.
  • R Package Development 2: Learn the basics of R package development (Wednesday, Feb. 16 @ 4pm). RSVP here.
  • Rmarkdown: Create reproducible research documents in R (Wednesday, Feb. 23 @ 4pm). RSVP here.

Recorded workshops

Resources for package development

For a textbook reference on R package development, we prefer R Packages: Organize, Test, Document, and Share Your Code by Hadley Wickham.

If you package requires highly optimized algorithms, there is a good text on Rcpp for interfacing with C++ called, Seamless R and C++ Integration with Rcpp (Use R!) 2013th Edition by Dirk Eddelbuettel.


We prefer to use StackOverflow as the preferred forum for general R questions.

Shiny app hosting

The Department has approximately 450 free hours for Shiny application hosting available to faculty and students. Shiny application hosting is a convenient way to distribute your Shiny apps to researches around the world.

Shiny development

Time permitting, I occasionally take requests to develop Shiny applications. Please email me to discuss details.