R Reference
|
This content was generated with the assistance of AI and should be verified against the official documentation before being relied on in production. The reference material consulted while preparing these pages is listed in the section bibliography. |
What R is
R is a language and environment for statistical computing and graphics. The R FAQ describes it as a system made of a language plus a run-time environment with graphics, a debugger, access to certain system functions and the ability to run programs stored in script files. Most of the functions a user calls are themselves written in R, and code that needs speed can call C, C++ or Fortran. Linear and generalized linear models, nonlinear regression, time series, classical tests, clustering, smoothing and a complete graphics system come with the base distribution; thousands of add-on packages on CRAN and Bioconductor extend it (R FAQ 2.1).
R is an implementation of the S language, designed by John Chambers and colleagues at Bell Laboratories and described in Becker, Chambers and Wilks' The New S Language (1988). R looks very much like S, but its implementation and semantics, lexical scoping in particular, come from Scheme (R FAQ 3.1, R FAQ 3.3). Ross Ihaka and Robert Gentleman wrote the first versions at the University of Auckland. Since mid-1997 the R Core Team has maintained the source code, and the R Foundation for Statistical Computing, a not-for-profit organization founded by R Core, holds and administers the copyright of the software and its documentation (R FAQ 2.13, The R Foundation). R is an official part of the GNU project and is free software under the GNU General Public License, version 2 or version 3 (GPL-2 | GPL-3 in the notation of a package’s License field). licence() prints the terms:
licence()
#>
#> This software is distributed under the terms of the GNU General
#> Public License, either Version 2, June 1991 or Version 3, June 2007.
#> The terms of version 2 of the license are in a file called COPYING
#> which you should have received with
#> this software and which can be displayed by RShowDoc("COPYING").
#> Version 3 of the license can be displayed by RShowDoc("GPL-3").
#>
#> Copies of both versions 2 and 3 of the license can be found
#> at https://www.R-project.org/Licenses/.
#>
#> A small number of files (the API header files listed in
#> R_DOC_DIR/COPYRIGHTS) are distributed under the
#> LESSER GNU GENERAL PUBLIC LICENSE, version 2.1 or later.
#> This can be displayed by RShowDoc("LGPL-2.1"),
#> or obtained at the URI given.
#> Version 3 of the license can be displayed by RShowDoc("LGPL-3").
#>
#> 'Share and Enjoy.'
Source: R documentation: license
The base distribution has two layers. The base packages (base, utils, stats, methods, graphics, grDevices, grid, tools, parallel, compiler, splines, stats4, datasets and tcltk) are part of R itself and versioned with it. The recommended packages (MASS, Matrix, lattice, survival, nlme, mgcv, codetools, foreign and a few more) are maintained separately on CRAN but shipped with every binary build. Everything else is an add-on package that you install from CRAN, Bioconductor or another repository; Packages, Libraries and Namespaces explains libraries and the search path.
This section teaches the language, its base packages and the tooling around it, from a first Rscript to a package on CRAN. Its statistics and graphics pages document what a learner of the language needs to read and fit models and draw charts; they are not a statistics course.
Version baseline
The section targets R 4.6: every page was checked against R 4.6.1 ("Happy Hop", released on 2026-06-24), the current release and the version every r-release manual describes. R 4.6.0 came out on 2026-04-24. R has one x.y.0 release a year, in spring, followed by patch releases as needed and a final patch of the old series shortly before the next x.y.0 (R Developer Page). Re-checked on 2026-10-22: R 4.6.2 ("Diversified Portfolio") is at release-candidate stage (code freeze on 2026-10-22) and is scheduled for 2026-10-29; the source releases still end at R 4.6.1. The development version, R-devel, will become R 4.7.0, with no release date published; the few R-devel changes that matter to a learner are described as upcoming on What’s New and Migrating Older Code.
R.version.string
#> [1] "R version 4.6.1 (2026-06-24)"
getRversion() >= "4.6.0"
#> [1] TRUE
Source: R documentation: numeric_version
How the pages were checked:
-
Every example on every page is a complete script that was run with
Rscripton R 4.6.1 (in a throwaway container) and passedlintr::lint()with the default linters (a line that deliberately shows a bad idiom carries a# nolintcomment). The#>lines are the real output, reprex-style; output that depends on the machine (paths, platform strings, timings) is trimmed or replaced, and the page says so. Code that cannot run in a container, such as the RStudio and Positron user interfaces, the Windows and macOS installers or a CRAN submission, was checked against the official documentation and is labelled as not run. -
The code uses the current idioms: the native pipe
|>, the\(x)lambda shorthand,vapply()with a declared result,seq_along()andTRUE/FALSE. Where older tutorials teach something else (magrittr’s%>%as the only pipe,stringsAsFactors = TRUE,TandF,sapply()everywhere,1:length(x)), the page explains the difference in prose. -
Add-on packages change faster than R. Each page that uses one states the version it was checked against in its introduction instead of hard-coding versions in the prose. S7 is described as the CRAN package it is today (0.2.2), not as part of base R.
-
Every concept is drawn from the official R documentation: the six manuals, the R FAQ, the help pages of the base and recommended packages, NEWS and the R Blog, and, for add-on packages, each package’s own documentation, labelled as package documentation. Each example is followed by a
Source:link, and every source is listed in the Bibliography.
The shelf scenario
The examples across the section share one small, original domain: shelf, a library catalogue seen from the analysis side. It is the domain of the Rust Reference, the Go Reference and the Ruby Reference too, so the same data can be compared across languages.
-
booksis a 16-row data frame read withread.csv("books.csv"):title,author,isbn,year,genreandpages, with deliberate mess for the cleaning pages (stray blanks, two spellings of one author, genre variants, an empty ISBN, one with a wrong check digit, and missing years and page counts). -
loanshas 60 loans (loan_id,isbn,member,loan_date,return_date) from January 2025 to June 2026, including an impossible date, a return before its loan, a member written two ways and seven loans still out. -
shelf_todayis fixed at 2026-06-30 andloan_daysat 21, so overdue results are reproducible. -
A
bookS3 class (constructor, validator, helper andprint,formatandsummarymethods) is re-modelled as an S4 class, an R6 class and an S7 class on the object-oriented pages. -
The analyses are loans per month, overdue rates by genre, the distribution of loan durations and a model of loan duration on pages and genre, drawn with base graphics, lattice and ggplot2.
-
On the tooling pages the code becomes a small
shelfpackage with roxygen2 documentation, testthat tests and a vignette, then anRscriptcommand-line report, a Shiny dashboard and a plumber API.
Pure-statistics pages also use the built-in data sets (penguins from R 4.5.0, mtcars, airquality). The pages build on each other, and the cheat sheet summarises the whole section.
Getting the scenario files
The scripts on the other pages start with source("scenario.R"). To run them, download these three files into one directory and make it R’s working directory with setwd() or an RStudio or Positron project. To keep the two CSV files somewhere else, set the SHELF_DIR environment variable to their directory before sourcing the script.
-
scenario.R: reads the two files into
booksandloans, and definesshelf_today,loan_daysand thebookS3 class. -
books.csv: the 16 books.
-
loans.csv: the 60 loans.
# The shelf scenario: data frames and the `book` S3 class shared by every page.
# Usage: save this file, books.csv and loans.csv in your working directory,
# then run source("scenario.R"). Set the SHELF_DIR environment variable to
# read the two CSV files from another directory.
shelf_dir <- Sys.getenv("SHELF_DIR", unset = ".")
shelf_today <- as.Date("2026-06-30")
loan_days <- 21L
# --- data frames ----------------------------------------------------------
books <- read.csv(file.path(shelf_dir, "books.csv"))
loans <- read.csv(file.path(shelf_dir, "loans.csv"), colClasses = "character")
loans$loan_date <- as.Date(loans$loan_date, format = "%Y-%m-%d")
loans$return_date <- as.Date(loans$return_date, format = "%Y-%m-%d")
# --- the book S3 class ----------------------------------------------------
normalise_isbn <- function(x) {
gsub("[^0-9X]", "", toupper(x))
}
is_valid_isbn13 <- function(x) {
digits <- normalise_isbn(x)
ok <- nchar(digits) == 13L & !grepl("X", digits, fixed = TRUE)
vapply(seq_along(digits), \(i) {
if (!ok[[i]]) {
return(FALSE)
}
d <- as.integer(strsplit(digits[[i]], "")[[1L]])
sum(d * rep(c(1L, 3L), length.out = 13L)) %% 10L == 0L
}, logical(1L))
}
new_book <- function(title = character(), author = character(),
isbn = character(), year = integer(),
genre = character(), pages = integer()) {
stopifnot(
is.character(title), is.character(author), is.character(isbn),
is.integer(year), is.character(genre), is.integer(pages)
)
structure(
list(
title = title, author = author, isbn = isbn,
year = year, genre = genre, pages = pages
),
class = "book"
)
}
validate_book <- function(x) {
fields <- unclass(x)
if (any(lengths(fields) != 1L)) {
stop("every field of a book must have length 1", call. = FALSE)
}
if (is.na(fields$title) || !nzchar(fields$title)) {
stop("a book needs a title", call. = FALSE)
}
if (!is.na(fields$isbn) && !is_valid_isbn13(fields$isbn)) {
stop("invalid ISBN-13: ", fields$isbn, call. = FALSE)
}
if (!is.na(fields$year) && fields$year > 2100L) {
stop("implausible year: ", fields$year, call. = FALSE)
}
x
}
book <- function(title, author = NA_character_, isbn = NA_character_,
year = NA_integer_, genre = NA_character_,
pages = NA_integer_) {
validate_book(new_book(
title = trimws(title),
author = trimws(author),
isbn = if (is.na(isbn)) isbn else normalise_isbn(isbn),
year = as.integer(year),
genre = trimws(genre),
pages = as.integer(pages)
))
}
format.book <- function(x, ...) {
year <- if (is.na(x$year)) "n.d." else x$year
sprintf("%s (%s, %s)", x$title, x$author, year)
}
print.book <- function(x, ...) {
cat("<book>", format(x), "\n")
invisible(x)
}
summary.book <- function(object, ...) {
structure(
list(
title = object$title,
has_isbn = !is.na(object$isbn),
pages = object$pages
),
class = "summary.book"
)
}
print.summary.book <- function(x, ...) {
cat("Book:", x$title, "\n")
cat("ISBN known:", x$has_isbn, "\n")
cat("Pages:", if (is.na(x$pages)) "unknown" else x$pages, "\n")
invisible(x)
}
Source: R documentation: read.table
"title","author","isbn","year","genre","pages"
"The Dispossessed","Ursula K. Le Guin","978-0-306-40615-7",1974,"Science fiction",387
"Pride and Prejudice","Jane Austen","978-0-14-143951-8",1813,"Classic",432
" the quiet streets ","Mara Quill","9780001000100",2019,"Fiction",214
"Loud Roofs","Mara Quill","978-0-00-200029-1",2021,"fiction",198
"Midnight Ledger","Iris Fenwick","978-0-00-300031-3",2016,"Mystery",301
"A Map of Salt","Tomas Arden","9780004000404",2008,"Non-fiction",
"Garden of Small Fires","Noor Haddad","978-0-00-500057-1",,"Poetry",96
"The Lamp at Noon","Le Guin, Ursula K.","978-0-00-600062-4",1999,"Classic",280
"Rivers of Glass","Tomas Arden","",2012,"Non-fiction",352
"THE LONG TABLE","Iris Fenwick","978-0-00-800085-1",2023,"Fiction ",256
"Paper Moons","Noor Haddad","9780009000911",2005,"Poetry",88
"Notes on Gravity","Elias Moreau","978-0-01-000104-4",2017,"Science fiction",410
"Orchard Logic","Elias Moreau","978-0-01-100112-9",2020,"Non-fiction",175
"The Slow Comet","Priya Raman","978-0-01-200126-4",2014,"science fiction",322
"Ten Winters","Priya Raman","9780013001331",2022,"Fiction",
"Salt and Static","Mara Quill","978-0-01-400145-3",2018,"Mystery",244
"loan_id","isbn","member","loan_date","return_date"
"L001","9780141439518","Hugo Silva","2025-01-14","2025-02-04"
"L002","9780306406157","Ben Okafor","2025-01-16","2025-01-26"
"L003","9780002000291","Dev Patel","2025-01-21","2025-01-22"
"L004","9780005000571","Eva Lindqvist","2025-01-26","2025-02-21"
"L005","978030640615","Ben Okafor","2025-02-19","2025-03-17"
"L006","9780004000404","Hugo Silva","2025-02-28","2025-03-17"
"L007","9780005000571","Grace Liu","2025-03-11","2025-04-04"
"L008","9780001000100","ana ruiz ","2025-03-27","2025-04-06"
"L009","9780001000100","Hugo Silva","2025-03-30","2025-04-30"
"L010","9780306406157","Hugo Silva","2025-04-06","2025-04-27"
"L011","9780010001044","Ben Okafor","2025-04-21","2025-05-27"
"L012","9780013001331","Chloe Martin","2025-04-23","2025-04-20"
"L013","9780005000571","Chloe Martin","2025-05-06","2025-05-27"
"L014","9780009000911","Ana Ruiz","2025-05-07","2025-05-11"
"L015","9780013001331","Ana Ruiz","2025-06-04","2025-07-11"
"L016","9780009000911","Hugo Silva","2025-06-17","2025-07-12"
"L017","9780011001129","Hugo Silva","2025-06-20","2025-07-17"
"L018","9780001000100","Dev Patel","2025-07-01","2025-07-26"
"L019","9780006000624","Ana Ruiz","2025-07-02","2025-07-25"
"L020","9780006000624","Ana Ruiz","2025-02-30","2025-07-15"
"L021","9780011001129","Ben Okafor","2025-07-05","2025-07-21"
"L022","9780008000851","Eva Lindqvist","2025-07-06","2025-07-27"
"L023","9780014001453","Grace Liu","2025-07-08","2025-08-04"
"L024","9780002000291","Grace Liu","2025-07-16","2025-08-08"
"L025","9780014001453","Eva Lindqvist","2025-07-22","2025-08-01"
"L026","9780003000313","Hugo Silva","2025-08-18","2025-08-28"
"L027","9780002000291","Eva Lindqvist","2025-09-12","2025-09-26"
"L028","9780141439518","Ana Ruiz","2025-09-18","2025-09-29"
"L029","9780306406157","Chloe Martin","2025-09-22","2025-10-18"
"L030","9780002000291","Chloe Martin","2025-09-30","2025-10-31"
"L031","9780001000100","Chloe Martin","2025-10-02","2025-10-06"
"L032","9780012001264","Hugo Silva","2025-10-03","2025-10-19"
"L033","9780002000291","","2025-10-11","2025-10-29"
"L034","9780013001331","ana ruiz ","2025-10-14","2025-11-11"
"L035","9780013001331","Ana Ruiz","2025-10-18","2025-11-04"
"L036","9780013001331","Eva Lindqvist","2025-10-20","2025-10-30"
"L037","9780014001453","Chloe Martin","2025-10-30","2025-12-05"
"L038","9780002000291","Grace Liu","2025-11-01","2025-11-08"
"L039","9780306406157","ana ruiz ","2025-11-04","2025-12-01"
"L040","9780006000624","Dev Patel","2025-11-18","2025-12-12"
"L041","9780012001264","Farid Karimi","2025-12-11","2025-12-23"
"L042","9780004000404","ana ruiz ","2025-12-15","2026-01-06"
"L043","9780010001044","Ben Okafor","2025-12-25","2026-01-22"
"L044","9780013001331","Grace Liu","2026-01-03","2026-02-01"
"L045","9780306406157","Farid Karimi","2026-01-05","2026-01-13"
"L046","9780141439518","Ana Ruiz","2026-01-09","2026-02-06"
"L047","9780001000100","Chloe Martin","2026-01-20","2026-02-12"
"L048","9780012001264","Hugo Silva","2026-02-05","2026-03-04"
"L049","9780012001264","Grace Liu","2026-02-10","2026-03-02"
"L050","9780001000100","Grace Liu","2026-02-23","2026-03-14"
"L051","9780010001044","Dev Patel","2026-03-11","2026-03-27"
"L052","9780306406157","Ana Ruiz","2026-03-16","2026-04-05"
"L053","9780004000404","Chloe Martin","2026-03-26","2026-04-19"
"L054","9780013001331","Chloe Martin","2026-04-07",""
"L055","9780306406157","Eva Lindqvist","2026-04-10",""
"L056","9780009000911","Dev Patel","2026-04-20",""
"L057","9780008000851","Dev Patel","2026-04-26",""
"L058","9780001000100","Ana Ruiz","2026-05-03",""
"L059","9780010001044","Ana Ruiz","2026-05-17",""
"L060","9780001000100","Hugo Silva","2026-05-28",""
New here? Read in this order
-
Getting Started — install R, the console and a first script
-
IDEs and the R Console — RStudio, Positron and the console itself
-
Getting Help and Documentation —
?, help pages and the manuals -
Assignment, Names and Values — copy-on-modify
-
Atomic Vectors and Types — there are no scalars in R
-
Subsetting and Indexing —
[,[[and$
Then pick topics as you need them and keep the cheat sheet at hand. If you come from another language, read Design Philosophy and Coming from Other Languages first; if you maintain older code, start with What’s New and Migrating Older Code and Idioms and Common Pitfalls.
The map below shows the whole section; the next section lists every page.
What’s covered
Getting started
| Page | What it covers |
|---|---|
what R is for, installing R on macOS, Windows and Linux, the console, a first session and a first |
|
the S heritage, vectorisation, length-one vectors, copy-on-modify, lazy evaluation and the object systems, with a mapping from Python, MATLAB, SQL, Java and C# |
|
the R GUI, the terminal console and its line editor, RStudio, Positron, VS Code, Jupyter and Emacs ESS |
|
the IDEs and editors commonly used for R, with links to RStudio, Positron and the VS Code extension |
|
|
|
the working directory, the workspace and |
Core language
| Page | What it covers |
|---|---|
tokens, comments, identifiers and backticks, reserved words, numeric, string and raw-string literals |
|
the assignment forms, |
|
arithmetic, comparison and logical operators, |
|
|
|
defining functions, argument matching, defaults, |
|
environments as objects, lexical scoping, the search path and namespaces, closures and |
|
promises, when arguments are forced, |
|
|
Vectors and data structures
| Page | What it covers |
|---|---|
the six atomic types, type tests, coercion, recycling and creating vectors |
|
|
|
integers and their overflow to |
|
the four kinds of index, |
|
|
|
codes and levels, ordered factors, |
|
|
|
recursive vectors, extracting and deleting elements, |
|
building, inspecting, filtering, sorting, merging, grouping and reshaping data frames |
|
|
|
|
|
declared encodings, |
Functional programming
| Page | What it covers |
|---|---|
|
|
vectorised operations as loop replacements and when a loop is still the right tool |
|
functions that return functions, |
Object-oriented programming
| Page | What it covers |
|---|---|
the SEXPTYPE table, |
|
constructors, validators and helpers, |
|
the |
|
|
|
reference semantics with |
|
|
Conditions and debugging
| Page | What it covers |
|---|---|
|
|
reading error messages, |
|
|
Metaprogramming
| Page | What it covers |
|---|---|
symbols, calls and expressions, |
|
|
|
the formula language and class, |
Data import and export
| Page | What it covers |
|---|---|
|
|
every kind of connection, opening modes, compressed files, and files and directories |
|
|
|
connections, queries, parameterised statements, transactions, backends and dbplyr |
|
|
Statistics and graphics
| Page | What it covers |
|---|---|
the d, p, q and r functions, |
|
summaries, tables, correlations and the classical tests with their |
|
|
|
high- and low-level plotting functions, |
|
viewports, units, grobs and the trellis plots of the lattice package |
|
aesthetics, geoms, stats, scales, facets, themes and |
Data manipulation ecosystems
| Page | What it covers |
|---|---|
tidy data, tibbles, tidy evaluation and the dplyr verbs, grouping and joins |
|
pivoting and rectangling, the purrr map functions and stringr against base R strings |
|
|
Packages and tooling
| Page | What it covers |
|---|---|
libraries, installing, loading and attaching packages, |
|
project libraries, |
|
the package layout, |
|
the Rd format, roxygen2 tags and markdown, documenting classes, vignettes and pkgdown |
|
|
|
the tidyverse style guide, lintr, styler and |
|
|
|
the CRAN Repository Policy, |
Performance and interoperability
| Page | What it covers |
|---|---|
|
|
the SEXP header, copy-on-modify with |
|
the parallel package, parallel random numbers, future and mirai |
|
|
|
choosing an interpreter, importing modules, type conversion and Python errors as R conditions |
|
documents that mix prose and code, chunk options, parameters, output formats and projects |
|
Shiny apps and reactivity, plumber APIs, testing and deployment, the shelf dashboard and API |
How to cite R
R is free, but its authors ask that it be cited when it is used for data analysis. citation() prints the recommended reference, as text and as a BibTeX entry; the year is the release year of the R version in use (R.version$year). Since R 4.6.0 the citation carries the DOI 10.32614/R.manuals (R NEWS, R FAQ 2.8).
citation()
#> To cite R in publications use:
#>
#> R Core Team (2026). _R: A Language and Environment for Statistical
#> Computing_. R Foundation for Statistical Computing, Vienna, Austria.
#> doi:10.32614/R.manuals <https://doi.org/10.32614/R.manuals>.
#> <https://www.R-project.org/>.
#>
#> A BibTeX entry for LaTeX users is
#>
#> @Manual{,
#> title = {R: A Language and Environment for Statistical Computing},
#> author = {{R Core Team}},
#> organization = {R Foundation for Statistical Computing},
#> address = {Vienna, Austria},
#> year = {2026},
#> doi = {10.32614/R.manuals},
#> url = {https://www.R-project.org/},
#> }
#>
#> We have invested a lot of time and effort in creating R, please cite it
#> when using it for data analysis. See also ‘citation("pkgname")’ for
#> citing R packages.
Source: R documentation: citation
Packages are cited the same way, with the package name as the argument. citation("pkg") returns a bibentry object, built from the package’s inst/CITATION file when it has one and from its DESCRIPTION file otherwise, and format() renders it in a chosen style. Cite the package version you used too, which packageVersion() reports:
citation("ggplot2") |> format(style = "text") |> writeLines()
#> Wickham H (2016). _ggplot2: Elegant Graphics for Data Analysis_.
#> Springer-Verlag New York. ISBN 978-3-319-24277-4.
#> <https://ggplot2.tidyverse.org>.
packageVersion("ggplot2")
#> [1] ‘4.0.3’
Source: R documentation: bibentry
Creating Packages shows how a package declares its own citation, and the R FAQ entry gives the BibTeX form to paste into a bibliography.
How this section relates to the others
-
Python Reference: Python is the other main language of data analysis. Design Philosophy and Coming from Other Languages maps pandas and NumPy idioms to R, and Python Interop with reticulate calls Python from R.
-
C Reference and C++ Reference: R’s own C API,
.Call()and Rcpp are covered in Interfacing C, C++ and Fortran; the C and C++ languages themselves are covered there. -
Fortran Reference: R calls Fortran through
.Fortran()and.Call(), and its matrix algebra goes through BLAS and LAPACK, the classic Fortran linear-algebra libraries (see Interfacing C, C++ and Fortran and Matrices and Arrays). -
Python Interop with PyO3: the same idea as reticulate, one language embedding another, from the Rust side; Numbers & Numeric Computing compares Rust’s scientific crates.
-
Serving Data Science & AI: the Python way to serve models and charts over HTTP, which Shiny, plumber and Web APIs does in R.
-
SQL Reference: SQL itself is covered there; Databases with DBI shows how R sends it to a database.
-
Docker: container images are covered there; Reproducible Environments with renv pins an R project’s packages inside one, using the Rocker images.
-
The Rust, Go and Ruby references use the same shelf domain, so you can compare how each language models the catalogue.
Some related work is planned in other issues of this repository and is not linked yet: a programming-languages comparison (#196), a Data Science section on NumPy, pandas and scikit-learn (#244), an AI and machine-learning section (#245) and a MATLAB reference (#248). If a Data Science section is added, the statistics, graphics and tidyverse pages of this section are the natural R counterpart.
Bibliography
Every source cited by the pages of this section is listed here, grouped by origin, and each one is cited again on the page that uses it (in its == References section, in the Source: line after an example, or in the text). The lists cover every external link on this page, the 71 topic pages and the cheat sheet, wherever it appears (== References sections, Source: lines, tables and prose), de-duplicated by document, so a manual or a help page appears once however many pages cite it; the section anchors used inside the manuals are not repeated here. Every link was checked on 2026-10-22; the ISO site answers scripted requests with HTTP 403, so its ISO 8601 page could not be checked automatically.
Official R Project documentation and resources
-
The R Project: home page, About R, The R Foundation, R licences, Getting Help with R, mailing lists, posting guide, Bug Reporting in R, Other documentation, mailing list web interface, R-announce mailing list, R Translation Teams
-
CRAN: home page, mirrors, R sources, source releases of R 1, R 2 and R 4, R for macOS, R for Windows, README for R 4.6.1 on Windows, Rtools, Rtools45, Tools for macOS, Debian, Fedora, Ubuntu binaries
-
R source code in the R Subversion repository: src/scripts/R.sh.in (R 4.6.1), src/main/serialize.c (R 4.6 branch)
-
The R Manuals: the manuals index, each cited with its r-release HTML edition (R 4.6.1) and the section anchors given on each page:
-
The FAQs: R FAQ, R for macOS FAQ, R for Windows FAQ
-
R NEWS and release information: NEWS of R 4.x (release), NEWS of R-devel, NEWS of R 3.x, NEWS of R 2.x, NEWS of R 1.x, the R developer page and release schedule, Standard Nonstandard Evaluation Rules, Parsing Rd files
-
The R citation:
citation()and doi:10.32614/R.manuals -
The R Blog, with the posts used: Generalizing Support for Functional OOP in R (2024), New Tricks for the R Sweave Drivers (2026); The R Journal
-
Contributing and publishing: R Development Guide, CRAN Repository Policy, Submitting a package, CRAN incoming directory, Checklist for submissions, URL checks, package check results, win-builder, mac-builder
-
CRAN Task Views, including the Probability Distributions and Time Series task views
-
The help pages of the base packages on search.r-project.org (R 4.6.1, 653 pages, plus the index of the base package; each link text is the Rd file name):
-
base (358): agrep, all, all.equal, allnames, aperm, apply, args, Arithmetic, array, array2DF, as.data.frame, as.Date, as.environment, as.function, as.POSIXlt, AsIs, assign, assignOps, attach, attr, attributes, base-defunct, base-internal, basename, bindenv, bitwise, body, bquote, browser, by, c, call, CallExternal, capabilities, cat, cbind, character, chartr, chol, chol2inv, chooseOpsMethod, class, colnames, Colon, colSums, commandArgs, comment, Comparison, complex, conditions, conflicts, connections, Control, crossprod, Cstack_info, cumsum, curlGetHeaders, cut, cut.POSIXt, data.frame, data.matrix, date, Dates, DateTimeClasses, dcf, debug, declare, Defunct, delayedAssign, deparse, Deprecated, det, detach, diag, diff, difftime, dim, dimnames, do.call, dots, double, dput, droplevels, dump, duplicated, dynload, eapply, eigen, encodeString, Encoding, environment, EnvVar, eval, exists, expand.grid, expression, Extract, Extract.data.frame, Extremes, extSoftVersion, factor, file.access, file.info, file.path, files, files2, find.package, findInterval, force, Foreign, formals, format, format.pval, formatc, function, funprog, gc, gc.time, gctorture, get, getDLLRegisteredRoutines, getLoadedDLLs, getNativeSymbolInfo, gettext, getwd, grep, groupGeneric, gzcon, hexmode, iconv, icuSetCollate, identical, ifelse, integer, interaction, interactive, Internal, InternalMethods, invisible, is.finite, is.function, is.language, is.object, is.recursive, ISOdatetime, isS4, isSymmetric, kappa, kronecker, l10n_info, La_library, La_version, lapply, length, lengths, levels, libcurlVersion, libPaths, library, license, list, list.files, list2DF, list2env, load, locales, Logic, logical, lower.tri, ls, make.names, make.unique, mapply, marginSums, match, match.arg, match.call, match.fun, MathFun, matmult, matrix, maxCol, mean, memCompress, memlimits, Memory, Memory-limits, memory.profile, merge, message, missing, mode, NA, name, names, nchar, nlevels, noquote, norm, normalizePath, nrow, ns-dblcolon, ns-hooks, ns-internal, ns-load, ns-reflect, ns-topenv, NULL, numeric, numeric_version, NumericConstants, octmode, on.exit, Ops.Date, options, order, outer, Paren, parse, paste, path.expand, pipeOp, plot, polyroot, Primitive, print, print.dataframe, print.default, proc.time, proportions, pushBack, qr, quit, Quotes, Random, range, rapply, raw, rawConnection, rawConversion, RdUtils, readBin, readChar, readline, readLines, readRDS, readRenviron, Recall, reg.finalizer, regex, regmatches, rep, replace, Reserved, rev, rm, Round, round.POSIXt, row, row.names, rowsum, S3method, sample, save, scale, scan, search, seek, seq, seq.Date, seq.POSIXt, serialize, showConnections, shQuote, sink, slice.index, slotOp, solve, sort, sort_by, source, split, sprintf, sQuote, StackOverflows, startsWith, Startup, stop, stopifnot, strptime, strrep, strsplit, strtoi, strtrim, structure, subset, substitute, substr, sum, summary, svd, sweep, switch, Syntax, Sys.getenv, Sys.getpid, Sys.glob, Sys.localeconv, sys.parent, Sys.readlink, Sys.setenv, Sys.setFileTime, Sys.sleep, sys.source, Sys.time, Sys.which, system, system.file, system.time, system2, t, table, tabulate, Tailcall, tapply, tempfile, textconnections, tilde, timezones, toString, trace, traceback, tracemem, transform, trimws, try, typeof, unlink, unlist, unname, use, UseMethod, utf8Conversion, validUTF8, vector, Vectorize, Version, warning, warnings, weekday.POSIXt, which, which.min, with, withVisible, write, writeLines, xtfrm, zMachine
-
utils (81): apropos, available.packages, BATCH, bibentry, bitstring, browseURL, browseVignettes, bug.report, capture.output, chooseCRANmirror, citation, contrib.url, count.fields, data, debugcall, debugger, demo, download.file, download.packages, edit, example, file.edit, findLineNum, getAnywhere, getParseData, getS3method, globalVariables, hashtab, head, help, help.request, help.search, help.start, INSTALL, install.packages, installed.packages, isS3method, localeToCharset, memory.size, menu, methods, modifyList, news, object.size, package.skeleton, packageDescription, person, PkgUtils, prompt, promptData, promptPackage, Question, read.fwf, read.table, recover, relist, REMOVE, remove.packages, Rprof, Rprofmem, Rscript, RShowDoc, RSiteSearch, RweaveLatex, savehistory, sessionInfo, setRepositories, SHLIB, stack, str, summaryRprof, Sweave, tar, type.convert, untar, unzip, update.packages, URLencode, vignette, write.table, zip
-
stats (95): add1, addmargins, aggregate, AIC, anova.glm, anova.lm, aov, ave, binom.test, Binomial, chisq.test, Chisquare, coef, complete.cases, confint, contrast, contrasts, cor, cor.test, delete.response, density, diffinv, Distributions, dummy.coef, ecdf, family, fisher.test, fivenum, formula, ftable, glm, glm.control, influence.measures, IQR, kruskal.test, ks.test, lm, mad, median, model.extract, model.frame, model.matrix, Multinom, na.fail, NegBinomial, nlm, nlminb, nls, nls.control, Normal, offset, optim, optimize, p.adjust, Pair, pairwise.t.test, pairwise.wilcox.test, plot.lm, Poisson, poly, power.t.test, predict.lm, predict.nls, print.power.htest, prop.test, qqnorm, quantile, relevel, reorder.factor, reshape, sd, setNames, shapiro.test, simulate, SSlogis, step, summary.lm, t.test, TDist, terms, terms.formula, terms.object, time, ts, tsp, TukeyHSD, uniroot, update, update.formula, var.test, weighted.mean, wilcox.test, window, xtabs, zC
-
methods (28): as, Classes_Details, GenericFunctions, getClass, getMethod, Introduction, is, localRefClass, Methods_Details, Methods_for_Nongenerics, Methods_for_S3, new, NextMethod, RClassUtils, refClass, removeMethod, representation, S4groupGeneric, setAs, setClass, setClassUnion, setGeneric, setMethod, setOldClass, show, showMethods, slot, validObject
-
graphics (22): abline, axis, barplot, boxplot, bxp, curve, hist, identify, layout, legend, locator, par, pie, plot.dataframe, plot.default, plot.factor, plot.formula, plothistogram, points, screen, segments, stripchart
-
grDevices (13): adjustcolor, boxplot.stats, cairo, col2rgb, dev, dev2, Devices, palette, palettes, pdf, plotmath, png, recordplot
-
grid (18): gpar, Grid, grid-defunct, grid.convert, grid.draw, grid.edit, grid.force, grid.grob, grid.layout, grid.newpage, grid.points, grid.rect, grid.text, makeContent, patterns, unit, viewport, viewports
-
tools (18): assertCondition, buildVignettes, check_packages_in_dir, checkFF, checkRd, checkRdaFiles, fileutils, package_dependencies, package_native_routine_registration_skeleton, parse_Rd, pskill, Rd2HTML, Rdiff, sha256sum, startDynamicHelp, update_pkg_po, userdir, xgettext
-
parallel (9): clusterApply, detectCores, makeCluster, mcaffinity, mcfork, mclapply, mcparallel, pvec, RngStream
-
datasets (5): airquality, datasets-package, mtcars, penguins, sleep
-
stats4 (5): coef-methods, confint-methods, mle, mle-class, summary-methods
-
compiler (1): compile
-
-
The recommended packages that ship with R (21 help pages under
search.r-project.org/CRAN/refmans/, plus their own documentation):-
codetools: checkUsage, findGlobals
-
foreign: read.dta, write.foreign
-
lattice: interaction, Lattice, lattice.options, panel.functions, panel.number, panel.xyplot, print.trellis, shingles, standard.theme, strip.default, trellis.object, trellis.par.get, update.trellis, xyplot; project site, NEWS, the grid vignette
-
Matrix: Matrix, Matrix-class, sparseMatrix; CRAN page
-
Official package documentation
Documentation of add-on packages, labelled as package documentation, not R Project documentation. Each package is listed with its own site (pkgdown, project site or CRAN page) and every reference page, article or vignette used; the version each page was checked against is stated in that page’s introduction.
-
R6 (package documentation): site, CRAN page, CRAN archive of R6 releases, NEWS; reference: R6Class; articles and vignettes: Debugging, Introduction to R6, Portable and non-portable R6 classes, R6 and Reference Class performance tests
-
S7 (package documentation): site, CRAN page, NEWS; reference: base_classes, class_any, convert, method, method_explain, methods_register, new_class, new_external_generic, new_generic, new_object, new_property, new_S3_class, new_union, props, S4_register, S7_class, S7_data, S7_dispatch, S7_inherits, super, validate; articles and vignettes: Classes and objects, Compatibility with S3 and S4, Generics and methods, Motivation for S7, S7 basics, Using S7 in a package
-
devtools (package documentation): site, reference index; reference: build, check, check_mac_release, check_man, check_win, document, install, release, submit_cran, test
-
usethis (package documentation): site, reference index; reference: create_package, licenses, use_c, use_cran_comments, use_data, use_git, use_github_action, use_package, use_package_doc, use_rcpp, use_release_issue, use_test, use_testthat, use_version, use_vignette
-
roxygen2 (package documentation): site, NEWS; reference: load_options, roxygenize, tags-namespace, tags-rd, tags-rd-other, tags-reuse; articles and vignettes: Documenting datasets, Documenting functions, Documenting R6, Documenting S3, Documenting S4, Documenting S7, Formatting, Get started, Managing imports and exports, Reuse documentation
-
testthat (package documentation): site, NEWS, reference index; reference: describe, equality-expectations, expect_error, expect_output, expect_setequal, expect_snapshot, expect_snapshot_file, extract_test, inheritance-expectations, local_edition, local_mocked_bindings, local_test_context, MinimalReporter, Reporter, set_max_fails, set_state_inspector, skip, snapshot_accept, test_dir, test_file, test_package, test_path, test_that; articles and vignettes: Custom expectations, Mocking, Running tests in parallel, Skipping tests, Snapshot tests, Special files, Test fixtures, testthat 3e
-
tinytest (package documentation): reference: run_test_file, setup_tinytest, test_package
-
covr (package documentation): site; reference: package_coverage, report, zero_coverage
-
pkgdown (package documentation): site; reference: build_site; articles and vignettes: Introduction to pkgdown
-
pkgbuild (package documentation): reference: has_build_tools
-
pkgload (package documentation): reference: load_all
-
rcmdcheck (package documentation): reference: rcmdcheck
-
revdepcheck (package documentation): site
-
rhub (package documentation): site, workflows/rhub.yaml, the r-hub2 GitHub organization; reference: rc_submit
-
renv (package documentation): site, NEWS, reference index; reference: activate, config, dependencies, embed, history, init, install, migrate, paths, restore, settings, snapshot, status; articles and vignettes: Anatomy of a lockfile, Frequently asked questions, Installing packages, Introduction to renv, Project profiles, Using Python with renv, Using renv with continuous integration, Using renv with Docker
-
packrat (package documentation): packrat repository (superseded by renv)
-
pak (package documentation): site; reference: lockfile_create, pak, pak_package_sources, pkg_sysreqs
-
remotes (package documentation): site
-
BiocManager (package documentation): site
-
ctv (package documentation): CRAN page
-
lintr (package documentation): site, NEWS, NEWS on CRAN; reference: absolute_path_linter, all_linters, assignment_linter, available_linters, class_equals_linter, cyclocomp_linter, default_linters, equals_na_linter, executing_linters, implicit_integer_linter, library_call_linter, lint, linters, linters_with_defaults, linters_with_tags, make_linter_from_xpath, nested_ifelse_linter, nonportable_path_linter, pipe_consistency_linter, pipe_continuation_linter, read_settings, return_linter, sarif_output, seq_linter, T_and_F_symbol_linter, todo_comment_linter, undesirable_function_linter, undesirable_operator_linter, unused_import_linter, use_lintr, vector_logic_linter; articles and vignettes: Continuous integration, Creating new linters, Editor setup, Get started
-
styler (package documentation): site, NEWS; reference: specify_math_token_spacing, style_file, style_pkg, style_text, stylerignore, tidyverse_style; articles and vignettes: Get started, Third-party integrations
-
rlang (package documentation): site, NEWS; reference: abort, dot-data, embrace-operator, enquo, inject, injection-operator, splice-operator, topic-condition-formatting, topic-data-mask, topic-quosure
-
lifecycle (package documentation): reference: deprecate_soft; articles and vignettes: Lifecycle stages
-
withr (package documentation): reference index; reference: with_dir, with_locale, with_seed
-
checkmate (package documentation): site; reference: assert, checkChoice, checkIntegerish, checkString, qassert
-
here (package documentation): site
-
fs (package documentation): reference: dir_tree
-
callr (package documentation): reference: r_bg
-
lobstr (package documentation): site
-
rstudioapi (package documentation): site
-
tidyverse (package documentation): package overview, site, NEWS; reference: tidyverse_conflicts, tidyverse_packages; articles and vignettes: The tidy tools manifesto
-
conflicted (package documentation): site
-
dplyr (package documentation): site, NEWS, reference index, articles index; reference: across, arrange, bind_rows, case_when, coalesce, count, distinct, dplyr_by, filter, filter-joins, glimpse, group_by, if_else, join_by, lead-lag, mutate, mutate-joins, na_if, pick, pull, reexports, reframe, relocate, rename, replace_values, rowwise, select, slice, summarise; articles and vignettes: Column-wise operations, dplyr <-> base R, Grouped data, Introduction to dplyr, Programming with dplyr, Recoding columns and replacing values, Row-wise operations, Two-table verbs, Using dplyr in packages, Window functions
-
dbplyr (package documentation): site, NEWS, dbplyr 2.6.0 release post (Posit Open Source blog); reference: collect.tbl_sql, show_query, sql, tbl.src_dbi; articles and vignettes: Function translation, Introduction to dbplyr
-
dtplyr (package documentation): site
-
tidyr (package documentation): site, NEWS; reference: complete, hoist, nest, pivot_longer, pivot_wider, separate, separate_longer_delim, separate_wider_delim; articles and vignettes: Pivoting, Rectangling, Tidy data
-
purrr (package documentation): site, NEWS; reference: accumulate, as_mapper, compose, detect, imap, in_parallel, keep, list_c, map, map2, partial, pmap, reduce, safely, walk; articles and vignettes: purrr and base R
-
stringr (package documentation): site, NEWS, reference index; reference: case, modifiers, str_c, str_detect, str_extract, str_glue, str_length, str_match, str_pad, str_replace, str_split, str_sub, str_trim; articles and vignettes: From base R, Regular expressions
-
forcats (package documentation): site, NEWS, reference index; reference: fct_infreq, fct_lump, fct_recode, fct_relevel, fct_reorder
-
lubridate (package documentation): site, NEWS, reference index; reference: interval, mplus, period, ymd
-
tibble (package documentation): site; reference: as_tibble, tibble; articles and vignettes: Comparing behavior with data frames
-
magrittr (package documentation): NEWS; reference: aliases, compound, exposition, pipe, tee
-
readr (package documentation): site, NEWS; reference: problems, read_delim
-
readxl (package documentation): reference: read_excel
-
haven (package documentation): reference: read_spss
-
vroom (package documentation): site
-
broom (package documentation): reference: augment.lm, glance.lm, tidy.htest, tidy.lm
-
ggplot2 (package documentation): site, NEWS; reference: aes, aes_eval, as_labeller, coord_cartesian, coord_fixed, coord_flip, coord_polar, coord_transform, element, expansion, facet_grid, facet_wrap, geom_abline, geom_bar, geom_boxplot, geom_density, geom_histogram, geom_jitter, geom_linerange, geom_smooth, geom_text, geom_tile, geom_violin, get_theme, gg-add, ggplot, ggplot_build, ggplotGrob, ggproto, ggsave, ggtheme, guide_colourbar, guide_legend, guides, is_tests, labellers, labs, layer, lims, position_dodge, position_jitter, position_stack, print.ggplot, scale_brewer, scale_continuous, scale_date, scale_manual, scale_viridis, stat_summary, theme, update_ggplot, vars; articles and vignettes: Aesthetic specifications, Extending ggplot2, Introduction to ggplot2, Using ggplot2 in packages
-
scales (package documentation): reference: label_number, oob
-
gtable (package documentation): site
-
gridBase (package documentation): CRAN page; gridGraphics: CRAN page; gridExtra: CRAN page; latticeExtra: CRAN page
-
svglite (package documentation): reference: svglite
-
rgl (package documentation): CRAN page; rggobi: CRAN page (archived from CRAN on 2020-07-15)
-
data.table (package documentation): site, NEWS; reference: assign, copy, data.table, dcast.data.table, fcase, fifelse, foverlaps, frank, fread, fwrite, melt.data.table, merge, mergelist, nafill, openmp-utils, print.data.table, rbindlist, selfref.ok, setDT, setkey, setorder, shift, special-symbols, substitute2, truelength; articles and vignettes: Benchmarking data.table, Efficient reshaping using data.table, Fast Read and Fast Write, Frequently asked questions, Importing data.table, Introduction to data.table, Joins in data.table, Keys and fast binary search based subset, Programming on data.table, Reference semantics, Secondary indices and auto indexing, Using .SD for data analysis
-
arrow (package documentation): Arrow for R documentation; reference: read_parquet
-
DBI (package documentation): site, NEWS; reference: dbBind, dbClearResult, dbConnect, dbCreateTable, dbDataType, dbDisconnect, dbExecute, dbFetch, dbGetQuery, dbGetQueryArrow, dbHasCompleted, dbListObjects, dbQuoteIdentifier, dbQuoteString, dbSendQuery, dbSendStatement, dbWithTransaction, dbWriteTable, Id, sqlInterpolate, transactions; articles and vignettes: Advanced DBI usage, DBI specification, Introduction to DBI
-
RSQLite (package documentation): site, NEWS; reference: SQLite
-
RPostgres (package documentation): reference: Postgres
-
RMariaDB (package documentation): reference: dbConnect-MariaDBDriver-method
-
odbc (package documentation): reference: dbConnect-OdbcDriver-method
-
duckdb (package documentation): reference: duckdb
-
pool (package documentation): site
-
httr2 (package documentation): site, NEWS, reference index; reference: iterate_with_offset, last_response, req_auth_basic, req_auth_bearer_token, req_body, req_cache, req_dry_run, req_error, req_headers, req_perform, req_perform_iterative, req_perform_parallel, req_retry, req_throttle, req_timeout, req_url, request, resp_body_raw, resp_headers, resp_status, response, resps_successes, url_parse, with_mocked_responses; articles and vignettes: OAuth, Wrapping APIs
-
httr (package documentation): site
-
curl (package documentation): reference: curl_download, handle
-
jsonlite (package documentation): CRAN page; reference: flatten, fromJSON, prettify, rbind_pages, read_json, serializeJSON, stream_in, unbox, validate; articles and vignettes: vignette json-aaquickstart
-
xml2 (package documentation): reference: read_xml
-
yaml (package documentation): reference: as.yaml, read_yaml, write_yaml, yaml.load
-
profvis (package documentation): site; reference: profvis; articles and vignettes: Frequently asked questions, Getting started with profvis, RStudio IDE integration
-
bench (package documentation): site; reference: mark, press, summary.bench_mark
-
future (package documentation): site, NEWS; reference: future, multicore, plan
-
future.apply (package documentation): reference: future_lapply
-
furrr (package documentation): site; reference: furrr_options
-
parallelly (package documentation): reference: availableCores
-
mirai (package documentation): site; reference: daemons, mirai, mirai_map; articles and vignettes: Communications Backend for R, Promises (Shiny and Plumber)
-
later (package documentation): reference: later
-
promises (package documentation): site
-
Rcpp (package documentation): site, CRAN page; reference: compileAttributes, cppFunction, evalCpp, sourceCpp; articles and vignettes: vignette Rcpp-attributes, vignette Rcpp-introduction, vignette Rcpp-package, vignette Rcpp-sugar
-
cpp11 (package documentation): site
-
reticulate (package documentation): site, CRAN page, NEWS; reference: array_reshape, dict, import, np_array, py_available, py_config, py_discover_config, py_last_error, py_require, py_run, r-py-conversion, repl_python, source_python, use_python, virtualenv-tools; articles and vignettes: Arrays in R and Python, Calling Python from R, Installing Python Packages, Python Version Configuration, R Markdown Python Engine, Using reticulate in an R Package
-
rPython (package documentation): CRAN page; PythonInR: CRAN page (both removed from CRAN)
-
knitr (package documentation): site, chunk options, CRAN page, language engines, NEWS; reference: convert_chunk_header, knit, knit2html, opts_chunk
-
rmarkdown (package documentation): site, Introduction, NEWS, Output Formats, Parameters; reference: github_document, html_document, knit_params_ask, pdf_document, render, word_document
-
quarto (package documentation): reference: quarto_render; articles and vignettes: Quarto HTML Vignettes
-
tinytex (package documentation): site
-
shiny (package documentation): site, Shiny for Python, Get started, Hosting and deployment, NEWS, reference index; reference: actionButton, bindCache, bindEvent, dateRangeInput, devmode, extendedtask, ExtendedTask, fluidPage, htmlOutput, isolate, loadSupport, moduleServer, NS, observeEvent, onStop, outputOptions, reactive, reactlog, renderPlot, renderPrint, renderTable, renderUI, req, runApp, runTests, selectInput, session, shinyApp, shinyAppTemplate, shinyOptions, sidebarLayout, sliderInput, startApp, testServer, textInput, validate; articles and vignettes: Execution scheduling, Modules, Reactivity, an overview
-
bslib (package documentation): reference: page_sidebar
-
reactlog (package documentation): site
-
shinytest2 (package documentation): site
-
httpuv (package documentation): site; reference: startServer
-
plumber (package documentation): site, NEWS; reference: options_plumber, plumb, pr, pr_handle, pr_hook, pr_mount, pr_run, pr_set_api_spec, pr_set_docs, serializers; articles and vignettes: Annotations reference, Hosting, Programmatic Usage, Quickstart, Rendering Output, Routing and Input, Runtime, Security
-
plumber2 (package documentation): site, NEWS; articles and vignettes: Migration
-
rsconnect (package documentation): reference: deployApp
-
optparse (package documentation): reference: OptionParser, parse_args; articles and vignettes: vignette optparse
-
argparse (package documentation): reference: ArgumentParser
-
RStudio IDE (Posit documentation): user guide, Debugging, Code diagnostics, Executing code, RStudio projects, Pane layout, Keyboard shortcuts
-
Positron (Posit documentation): site, About Positron, Connections pane, Data Explorer, Licensing, Managing interpreters, Plots pane, Discovering R installations, Variables pane; Ark, the R kernel of Positron
-
Quarto: site, computations/execution-options, computations/inline-code, computations/parameters, computations/r, download, download/changelog/1.4, faq/rmarkdown, interactive/shiny, output-formats/all-formats, output-formats/gfm, output-formats/ms-word, output-formats/pdf-engine, output-formats/typst, presentations/revealjs, projects/code-execution, projects/quarto-projects, reference/cells/cells-knitr, reference/formats/html, reference/projects/options, and the Quarto CLI releases
-
Repositories and package managers: Bioconductor, Bioconductor: install, Bioconductor package development guidelines, R-universe documentation, R-universe: binaries, R-universe: dependencies, R-universe: set up your own universe, Posit Package Manager user guide
-
Editors and hosting: Emacs Speaks Statistics (ESS), ShinyProxy
Community references
Community references, labelled as such: free online books by package authors, style guides and community tools. The books were consulted for concept coverage only; they are never the primary source of an example, no text, code listing or figure was copied from them, and on any discrepancy the official R or package documentation wins. Advanced R predates S7, the native pipe, the \(x) shorthand and the R 4.2 and 4.3 errors for conditions of length greater than one, and the pages that consult it say so.
-
Hadley Wickham, Mine Çetinkaya-Rundel and Garrett Grolemund, R for Data Science, 2nd edition, O’Reilly, 2023: r4ds.hadley.nz
-
Hadley Wickham, Advanced R, 2nd edition, CRC Press, 2019: adv-r.hadley.nz, chapters Names and values, Functions and Metaprogramming (introduction)
-
Hadley Wickham and Jennifer Bryan, R Packages, 2nd edition, O’Reilly, 2023: r-pkgs.org, chapter Releasing to CRAN
-
Hadley Wickham, Danielle Navarro and Thomas Lin Pedersen, ggplot2: Elegant Graphics for Data Analysis, 3rd edition: ggplot2-book.org
-
Hadley Wickham, Mastering Shiny: mastering-shiny.org
-
Style and design: The tidyverse style guide (home, Files, Syntax, Functions, Pipes), Google's R Style Guide, Tidy design principles and rOpenSci Packages: Development, Maintenance, and Peer Review (devguide.ropensci.org)
-
Editors and kernels: the R language server, languageserver on CRAN, the R extension for VS Code, Air, Air: editors, IRkernel, IRkernel: installation, Posit Community forum
-
Installation, containers and CI: rig, the R Installation Manager, the Rocker Project, Rocker r-ver images, Rocker shiny images, r-lib/actions examples, check-standard.yaml
-
Community packages and checkers: microbenchmark, cyclocomp, formatR, goodpractice, spelling, urlchecker, pkgcheck
-
Package articles and benchmarks: Jeroen Ooms, The jsonlite Package: A Practical and Consistent Mapping Between JSON Data and R Objects, 2014: arXiv:1403.2805; the Rcpp Gallery; Database-like ops benchmark (db-benchmark), maintained by DuckDB Labs
Specifications and standards
Each is cited where a page relies on it:
-
IEEE 754-2019, floating-point arithmetic: Numbers and Arithmetic and Missing and Special Values
-
Unicode and UTF-8 (RFC 3629): Encodings, Locales and Internationalization and Strings and Regular Expressions
-
HTTP Semantics (RFC 9110): HTTP and Web APIs and Shiny, plumber and Web APIs
-
POSIX regular expressions (The Open Group Base Specifications, chapter 9) and PCRE2: Strings and Regular Expressions
-
CVE-2024-27322 (NIST National Vulnerability Database), deserialization of untrusted data in R: Serialization: RDS, RData and JSON