Easily Install and Load the 'Tidyverse'

The 'tidyverse' is a set of packages that work in harmony because they share common data representations and 'API' design. This package is designed to make it easy to install and load multiple 'tidyverse' packages in a single step. Learn more about the 'tidyverse' at < https://tidyverse.org>.

Travis-CI Build Status


The tidyverse is a set of packages that work in harmony because they share common data representations and API design. The tidyverse package is designed to make it easy to install and load core packages from the tidyverse in a single command.

If you'd like to learn how to use the tidyverse effectively, the best place to start is R for data science.


# Or the development version from GitHub
# install.packages("devtools")


library(tidyverse) will load the core tidyverse packages:

  • ggplot2, for data visualisation.
  • dplyr, for data manipulation.
  • tidyr, for data tidying.
  • readr, for data import.
  • purrr, for functional programming.
  • tibble, for tibbles, a modern re-imagining of data frames.

You also get a condensed summary of conflicts with other packages you have loaded:

#> Loading tidyverse: ggplot2
#> Loading tidyverse: tibble
#> Loading tidyverse: tidyr
#> Loading tidyverse: readr
#> Loading tidyverse: purrr
#> Loading tidyverse: dplyr
#> Conflicts with tidy packages ----------------------------------------------
#> filter(): dplyr, stats
#> lag():    dplyr, stats

You can see conflicts created later with tidyverse_conflicts():

#> Attaching package: 'MASS'
#> The following object is masked from 'package:dplyr':
#>     select
#> Conflicts with tidy packages ----------------------------------------------
#> filter(): dplyr, stats
#> lag():    dplyr, stats
#> select(): dplyr, MASS

And you can check that all tidyverse packages are up-to-date with tidyverse_update():

#> The following packages are out of date:
#>  * broom (0.4.0 -> 0.4.1)
#>  * DBI   (0.4.1 -> 0.5)
#>  * Rcpp  (0.12.6 -> 0.12.7)
#> Update now?
#> 1: Yes
#> 2: No


As well as the core tidyverse, installing this package also installs a selection of other packages that you're likely to use frequently, but probably not in every analysis. This includes packages for:

  • Working with specific types of vectors:

  • Importing other types of data:

    • feather, for sharing with Python and other languages.
    • haven, for SPSS, SAS and Stata files.
    • httr, for web apis.
    • jsonlite for JSON.
    • readxl, for .xls and .xlsx files.
    • rvest, for web scraping.
    • xml2, for XML.
  • Modelling

    • modelr, for modelling within a pipeline
    • broom, for turning models into tidy data


tidyverse 1.2.1

  • Require modern versions of all packages (#85)

  • Work with RStudio 1.0 and earlier (#88).

tidyverse 1.2.0

Changes to tidyverse membership

  • stringr and forcats have been added to the core tidyverse, so they are attached by library(tidyverse).

  • reprex joins the tidyverse to make it easier to create reproducible examples (#47)

Other improvements

  • On attach, tidyverse now makes better use of the horizontal space, printing packages and versions in two columns (#59). It only prints packages that it attaches, not packages that you've already attached. Development versions are highlighted in red.

    You can now suppress this startup message by setting options(tidyverse.quiet = TRUE)

  • tidyverse_conflicts() now prints all conflicts that involve at least one tidyverse package; Previously it only omitted any intra-tidyverse conflicts (#26). I've also tweaked the display of conflicts to hopefully make it more clear which function is the "winner".

  • tidyverse_update() now just gives you the code you need to update the packges, since in general it's not possible to update packages that are already loaded.

  • feather is now actually in suggests.

tidyverse 1.1.1

  • Moved feather from Imports to Suggests - feather is part of the tidyverse but it's installation requirements (C++11 + little-endian) make it painful in many scenarios (#36).

tidyverse 1.1.0

  • Added a NEWS.md file to track changes to the package.

  • Membership changes:

    • Removed DBI (since very different API, #16)
    • Added feather (#15)
  • tidyverse_deps() and tidyverse_packages() are now exported so you can more easily see the make up of the tidyverse, and what package versions you have (#18, #23)

  • suppressPackageStartupMessages() now suppresses all messages during loading (#19). suppressPackageStartupMessages() is called automatically for all tidyverse packages (#27).

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.