{{safesubst:#invoke:Unsubst||date=__DATE__|$B= Template:Ambox }} Template:Short description Template:About Template:Use dmy dates Template:Infobox programming language

R is a programming language for statistical computing and data visualization. It has been adopted in the fields of data mining, bioinformatics and data analysis/data science.<ref>Template:Cite journal</ref>

The core R language is augmented by a large number of extension software packages, which contain reusable code, documentation, and sample data.

R software is open-source and free software. R is a GNU Project and licensed under the GNU General Public License.<ref name="gnugpl">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> It is written primarily in C, Fortran, and R itself. Precompiled executables are provided for various operating systems.

As an interpreted language, R has a native command line interface. Moreover, multiple third-party graphical user interfaces are available, such as RStudio—an integrated development environment—and Jupyter—a notebook interface.

HistoryEdit

{{#invoke:Gallery|gallery}}

R was started by professors Ross Ihaka and Robert Gentleman as a programming language to teach introductory statistics at the University of Auckland.<ref name="otago_pg12">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> The language was inspired by the S programming language, with most S programs able to run unaltered in R.<ref name="R FAQ"/> The language was also inspired by Scheme's lexical scoping, allowing for local variables.<ref name="Morandat"/>

The name of the language, R, comes from being both an S language successor as well as the shared first letter of the authors, Ross and Robert.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> In August 1993, Ihaka and Gentleman posted a binary of R on StatLib — a data archive website.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> At the same time, they announced the posting on the s-news mailing list.<ref name="Interface98">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> On 5 December 1997, R became a GNU project when version 0.60 was released.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> On 29 February 2000, the 1.0 version was released.<ref name="otago_pg18">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Template:AnchorPackagesEdit

{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}

File:Ggplot2 PlantGrowth violin plot.svg
Violin plot created from the R visualization package ggplot2

R packages are collections of functions, documentation, and data that expand R.<ref name="rds_pagexvii">Template:Cite book</ref> For example, packages can add reporting features (using packages like RMarkdown, Quarto,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> knitr, and Sweave) and the capability to implement various statistical techniques (such as linear, generalized linear and nonlinear modeling, classical statistical tests, spatial analysis, time-series analysis, and clustering). Perceived easy package installation and usability have contributed to the language's adoption in data science.<ref name="Chambers2020">Template:Cite journal</ref>

Immediately available when starting R, base packages provide the basic and necessary syntax and commands for programming, computing, graphics production, basic arithmetic, and statistical functionality.<ref>Template:Cite book</ref>

An example R package is the tidyverse package, which bundles several subsidiary packages to provide a common interface. It specializes in tasks related to accessing and processing "tidy data",<ref>Wickham, Hadley (2014). "Tidy Data" (PDF). Journal of Statistical Software. 59 (10). doi:10.18637/jss.v059.i10.</ref> which are data contained in a two-dimensional table with a single row for each observation and a single column for each variable.<ref name="rds">Template:Cite book</ref>

Installing a package occurs only once. For example, to install the tidyverse package:<ref name="rds" /> <syntaxhighlight lang="rout"> > install.packages("tidyverse") </syntaxhighlight>

To load the functions, data, and documentation of a package, one executes the library() function. To load tidyverse:Template:Efn <syntaxhighlight lang="rout"> > # Package name can be enclosed in quotes > library("tidyverse")

> # But also the package name can be called without quotes > library(tidyverse) </syntaxhighlight>

The Comprehensive R Archive Network (CRAN) was founded in 1997 by Kurt Hornik and Friedrich Leisch to host R's source code, executable files, documentation, and user-created packages.<ref name=":10" /> Its name and scope mimic the Comprehensive TeX Archive Network (CTAN) and the Comprehensive Perl Archive Network (CPAN).<ref name=":10">Template:Cite journal</ref> CRAN originally had three mirroring sites and twelve contributed packages.<ref>Template:Cite Q.</ref> Template:As of, it has 99 mirrors<ref name=":3">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> and 21,513 contributed packages.<ref name=":9">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Packages are also available on repositories like R-Forge, Omegahat, and GitHub.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

On the CRAN web site as a form of guidance, Task Views lists packages on CRAN that are relevant for tasks related to a certain topics, such as causal inference, finance, genetics, high-performance computing, machine learning, medical imaging, meta-analysis, social sciences, and spatial statistics.

The Bioconductor project provides packages for genomic data analysis, complementary DNA, microarray, and high-throughput sequencing methods.

CommunityEdit

There are three main groups that help support R software development:

  • The R Core Team was founded in 1997 to maintain the R source code.
  • The R Foundation for Statistical Computing was founded in April 2003 to provide financial support.
  • The R Consortium is a Linux Foundation project to develop R infrastructure.

The R Journal is an open access, academic journal which features short to medium-length articles on the use and development of R. It includes articles on packages, programming tips, CRAN news, and foundation news.

The R community hosts many conferences and in-person meetups.Template:Efn These groups include:

  • UseR!: an annual international R user conference (website)
  • Directions in Statistical Computing (DSC) (website)
  • R-Ladies: an organization to promote gender diversity in the R community (website)
  • SatRdays: R-focused conferences held on Saturdays (website)
  • R Conference (website)
  • posit::conf (formerly known as rstudio::conf) (website)

On social media sites like Twitter, the hashtag #rstats can be used to keep up with new developments in the R community.<ref>Template:Cite book</ref>

ExamplesEdit

Hello, World!Edit

"Hello, World!" program: <syntaxhighlight lang="rout">> print("Hello, World!") [1] "Hello, World!"</syntaxhighlight>Alternatively:<syntaxhighlight lang="rout"> > cat("Hello, World!") Hello, World! </syntaxhighlight>

Basic syntaxEdit

The following examples illustrate the basic syntax of the language and use of the command-line interface.Template:Efn

In R, the generally preferred assignment operator is an arrow made from two characters <-, although = can be used in some cases.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

<syntaxhighlight lang="rout"> > x <- 1:6 # Create a numeric vector in the current environment > y <- x^2 # Create vector based on the values in x. > print(y) # Print the vector’s contents. [1] 1 4 9 16 25 36

> z <- x + y # Create a new vector that is the sum of x and y > z # Return the contents of z to the current environment. [1] 2 6 12 20 30 42

> z_matrix <- matrix(z, nrow = 3) # Create a new matrix that turns the vector z into a 3x2 matrix object > z_matrix

    [,1] [,2]

[1,] 2 20 [2,] 6 30 [3,] 12 42

> 2 * t(z_matrix) - 2 # Transpose the matrix, multiply every element by 2, subtract 2 from each element in the matrix, and return the results to the terminal.

    [,1] [,2] [,3]

[1,] 2 10 22 [2,] 38 58 82

> new_df <- data.frame(t(z_matrix), row.names = c("A", "B")) # Create a new data.frame object that contains the data from a transposed z_matrix, with row names 'A' and 'B' > names(new_df) <- c("X", "Y", "Z") # Set the column names of new_df as X, Y, and Z. > print(new_df) # Print the current results.

  X  Y  Z

A 2 6 12 B 20 30 42

> new_df$Z # Output the Z column [1] 12 42

> new_df$Z == new_df['Z'] && new_df[3] == new_df$Z # The data.frame column Z can be accessed using $Z, ['Z'], or [3] syntax and the values are the same. [1] TRUE

> attributes(new_df) # Print attributes information about the new_df object $names [1] "X" "Y" "Z"

$row.names [1] "A" "B"

$class [1] "data.frame"

> attributes(new_df)$row.names <- c("one", "two") # Access and then change the row.names attribute; can also be done using rownames() > new_df

    X  Y  Z

one 2 6 12 two 20 30 42

</syntaxhighlight>

Structure of a functionEdit

R is able to create functions to add new functionality for reuse.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Objects created within the body of the function (which are enclosed by curly brackets) remain only accessible from within the function, and any data type may be returned. In R, almost all functions and all user-defined functions are closures.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Example of creating a function to perform some arithmetic calculation: <syntaxhighlight lang="r"># The input parameters are x and y.

  1. The function, being named f, returns a linear combination of x and y.

f <- function(x, y) {

 z <- 3 * x + 4 * y
 # An explicit return() statement is optional, could be replaced with simply `z`.
 return(z)

}

  1. Alternatively, the last statement executed is implicitly returned.

f <- function(x, y) 3 * x + 4 * y</syntaxhighlight>

Usage output: <syntaxhighlight lang="rout"> > f(1, 2) # 3 * 1 + 4 * 2 = 3 + 8 [1] 11

> f(c(1, 2, 3), c(5, 3, 4)) # Element-wise calculation [1] 23 18 25

> f(1:3, 4) # Equivalent to f(c(1, 2, 3), c(4, 4, 4)) [1] 19 22 25 </syntaxhighlight>

It is possible to define functions to be used as infix operators with the special syntax `%name%` where "name" is the function variable name: <syntaxhighlight lang="rout"> > `%sumx2y2%` <- function(e1, e2) {e1 ^ 2 + e2 ^ 2} > 1:3 %sumx2y2% -(1:3) [1] 2 8 18 </syntaxhighlight>

Since version 4.1.0 functions can be written in a short notation, which is useful for passing anonymous functions to higher-order functions:<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> <syntaxhighlight lang="rout"> > sapply(1:5, \(i) i^2) # here \(i) is the same as function(i) [1] 1 4 9 16 25 </syntaxhighlight>

Native pipe operatorEdit

In R version 4.1.0, a native pipe operator, |>, was introduced.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> This operator allows users to chain functions together one after another, instead of a nested function call.

<syntaxhighlight lang="rout"> > nrow(subset(mtcars, cyl == 4)) # Nested without the pipe character [1] 11

> mtcars |> subset(cyl == 4) |> nrow() # Using the pipe character [1] 11 </syntaxhighlight>

Another alternative to nested functions, in contrast to using the pipe character, is using intermediate objects:

<syntaxhighlight lang="rout"> > mtcars_subset_rows <- subset(mtcars, cyl == 4) > num_mtcars_subset <- nrow(mtcars_subset_rows) > print(num_mtcars_subset) [1] 11 </syntaxhighlight>While the pipe operator can produce code that is easier to read, it has been advised to pipe together at most 10 to 15 lines and chunk code into sub-tasks which are saved into objects with meaningful names.<ref>Template:Cite book</ref>

Here is an example with fewer than 10 lines that some readers may still struggle to grasp without intermediate named steps:<syntaxhighlight lang="r" line="1">(\(x, n = 42, key = c(letters, LETTERS, " ", ":", ")"))

   strsplit(x, "")1 |>
   (Vectorize(\(chr) which(chr == key) - 1))() |>
   (`+`)(n) |>
   (`%%`)(length(key)) |>
   (\(i) key[i + 1])() |>
   paste(collapse = "")

)("duvFkvFksnvEyLkHAErnqnoyr")</syntaxhighlight>

Object-oriented programmingEdit

The R language has native support for object-oriented programming. There are two native frameworks, the so-called S3 and S4 systems. The former, being more informal, supports single dispatch on the first argument and objects are assigned to a class by just setting a "class" attribute in each object. The latter is a Common Lisp Object System (CLOS)-like system of formal classes (also derived from S) and generic methods that supports multiple dispatch and multiple inheritance<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

In the example, summary is a generic function that dispatches to different methods depending on whether its argument is a numeric vector or a "factor": <syntaxhighlight lang="rout"> > data <- c("a", "b", "c", "a", NA) > summary(data)

  Length     Class      Mode 
       5 character character 

> summary(as.factor(data))

  a    b    c NA's 
  2    1    1    1 

</syntaxhighlight>

Modeling and plottingEdit

File:Plots from lm example.svg
Diagnostic plots from plotting "model" (q.v. "plot.lm()" function). Notice the mathematical notation allowed in labels (lower left plot).

The R language has built-in support for data modeling and graphics. The following example shows how R can generate and plot a linear model with residuals. <syntaxhighlight lang="r">

  1. Create x and y values

x <- 1:6 y <- x^2

  1. Linear regression model y = A + B * x

model <- lm(y ~ x)

  1. Display an in-depth summary of the model

summary(model)

  1. Create a 2 by 2 layout for figures

par(mfrow = c(2, 2))

  1. Output diagnostic plots of the model

plot(model) </syntaxhighlight>

Output: <syntaxhighlight lang="rout"> Residuals:

     1       2       3       4       5       6       7       8      9      10
3.3333 -0.6667 -2.6667 -2.6667 -0.6667  3.3333

Coefficients:

           Estimate Std. Error t value Pr(>|t|)   

(Intercept) -9.3333 2.8441 -3.282 0.030453 * x 7.0000 0.7303 9.585 0.000662 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.055 on 4 degrees of freedom Multiple R-squared: 0.9583, Adjusted R-squared: 0.9478 F-statistic: 91.88 on 1 and 4 DF, p-value: 0.000662 </syntaxhighlight>

Mandelbrot setEdit

File:Mandelbrot Creation Animation.gif
"Mandelbrot.gif" graphic created in R. (Note: Colors differ from actual output.)

This Mandelbrot set example highlights the use of complex numbers. It models the first 20 iterations of the equation z = z2 + c, where c represents different complex constants.

Install the package that provides the write.gif() function beforehand: <syntaxhighlight lang="r"> install.packages("caTools") </syntaxhighlight>

R Source code: <syntaxhighlight lang="r"> library(caTools)

jet.colors <-

   colorRampPalette(
       c("green", "pink", "#007FFF", "cyan", "#7FFF7F",
         "white", "#FF7F00", "red", "#7F0000"))

dx <- 1500 # define width dy <- 1400 # define height

C <-

   complex(
           real = rep(seq(-2.2, 1.0, length.out = dx), each = dy),
           imag = rep(seq(-1.2, 1.2, length.out = dy), times = dx)
           )
  1. reshape as matrix of complex numbers

C <- matrix(C, dy, dx)

  1. initialize output 3D array

X <- array(0, c(dy, dx, 20))

Z <- 0

  1. loop with 20 iterations

for (k in 1:20) {

 # the central difference equation
 Z <- Z^2 + C
 # capture the results
 X[, , k] <- exp(-abs(Z))

}

write.gif(

   X,
   "Mandelbrot.gif",
   col = jet.colors,
   delay = 100)

</syntaxhighlight>

Version namesEdit

File:CD of R 1 0 0.png
CD of R Version 1.0.0, autographed by the core team of R, photographed R in Quebec City in 2019

All R version releases from 2.14.0 onward have codenames that make reference to Peanuts comics and films.<ref>Template:Cite book</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>Template:Citation</ref>

In 2018, core R developer Peter Dalgaard presented a history of R releases since 1997.<ref name=":2">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Some notable early releases before the named releases include:

  • Version 1.0.0 released on 29 February 2000 (2000-02-29), a leap day
  • Version 2.0.0 released on 4 October 2004 (2004-10-04), "which at least had a nice ring to it"<ref name=":2" />

The idea of naming R version releases was inspired by the Debian and Ubuntu version naming system. Dalgaard also noted that another reason for the use of Peanuts references for R codenames is because, "everyone in statistics is a P-nut".<ref name=":2" />

R release codenames
Version Release date Name Peanuts reference Reference
4.5.0 2025-04-11 How About a Twenty-Six citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.4.3 2025-02-28 Trophy Case citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.4.2 2024-10-31 Pile of Leaves citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.4.1 2024-06-14 Race for Your Life citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.4.0 2024-04-24 Puppy Cup citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.3.3 2024-02-29 Angel Food Cake citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.3.2 2023-10-31 Eye Holes citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.3.1 2023-06-16 Beagle Scouts citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.3.0 2023-04-21 Already Tomorrow citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.2.3 2023-03-15 Shortstop Beagle citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.2.2 2022-10-31 Innocent and Trusting citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.2.1 2022-06-23 Funny-Looking Kid citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.2.0 2022-04-22 Vigorous Calisthenics citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.1.3 2022-03-10 One Push-Up <ref name=":1" /> citation CitationClass=web

}}</ref>

4.1.2 2021-11-01 Bird Hippie citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

<ref name="Rd R 4.1.2 is released"/>
4.1.1 2021-08-10 Kick Things citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.1.0 2021-05-18 Camp Pontanezen citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.0.5 2021-03-31 Shake and Throw citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.0.4 2021-02-15 Lost Library Book citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.0.3 2020-10-10 Bunny-Wunnies Freak Out citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.0.2 2020-06-22 Taking Off Again citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.0.1 2020-06-06 See Things Now citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

4.0.0 2020-04-24 Arbor Day citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.6.3 2020-02-29 Holding the Windsock citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.6.2 2019-12-12 Dark and Stormy Night See It was a dark and stormy night#Literature<ref>{{#invoke:citation/CS1|citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.6.1 2019-07-05 Action of the Toes citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.6.0 2019-04-26 Planting of a Tree citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.5.3 2019-03-11 Great Truth citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.5.2 2018-12-20 Eggshell Igloos citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.5.1 2018-07-02 Feather Spray citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.5.0 2018-04-23 Joy in Playing citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.4.4 2018-03-15 Someone to Lean On citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.4.3 2017-11-30 Kite-Eating Tree See Kite-Eating Tree<ref>{{#invoke:citation/CS1|citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.4.2 2017-09-28 Short Summer See It Was a Short Summer, Charlie Brown citation CitationClass=web

}}</ref>

3.4.1 2017-06-30 Single Candle citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.4.0 2017-04-21 You Stupid Darkness <ref name="auto"/> citation CitationClass=web

}}</ref>

3.3.3 2017-03-06 Another Canoe citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.3.2 2016-10-31 Sincere Pumpkin Patch citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.3.1 2016-06-21 Bug in Your Hair citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.3.0 2016-05-03 Supposedly Educational citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.2.5 2016-04-11 Very, Very Secure Dishes citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

3.2.4 2016-03-11 Very Secure Dishes <ref name=":0" /> citation CitationClass=web

}}</ref>

3.2.3 2015-12-10 Wooden Christmas-Tree See A Charlie Brown Christmas<ref>{{#invoke:citation/CS1|citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.2.2 2015-08-14 Fire Safety citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.2.1 2015-06-18 World-Famous Astronaut citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.2.0 2015-04-16 Full of Ingredients citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.1.3 2015-03-09 Smooth Sidewalk <ref>Template:Cite book</ref>Template:Page needed citation CitationClass=web

}}</ref>

3.1.2 2014-10-31 Pumpkin Helmet See You're a Good Sport, Charlie Brown citation CitationClass=web

}}</ref>

3.1.1 2014-07-10 Sock it to Me citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.1.0 2014-04-10 Spring Dance <ref name="auto1"/> citation CitationClass=web

}}</ref>

3.0.3 2014-03-06 Warm Puppy citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.0.2 2013-09-25 Frisbee Sailing citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.0.1 2013-05-16 Good Sport citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

3.0.0 2013-04-03 Masked Marvel citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

2.15.3 2013-03-01 Security Blanket citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

2.15.2 2012-10-26 Trick or Treat citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

2.15.1 2012-06-22 Roasted Marshmallows citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

2.15.0 2012-03-30 Easter Beagle citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

2.14.2 2012-02-29 Gift-Getting Season See It's the Easter Beagle, Charlie Brown<ref>Template:Cite AV media</ref> citation CitationClass=web

}}</ref>

2.14.1 2011-12-22 December Snowflakes citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

2.14.0 2011-10-31 Great Pumpkin See It's the Great Pumpkin, Charlie Brown<ref>{{#invoke:citation/CS1|citation CitationClass=web

}}</ref>

citation CitationClass=web

}}</ref>

r-devel N/A Unsuffered Consequences citation CitationClass=web

}}</ref>

<ref name=":2" />

InterfacesEdit

R comes installed with a command line console, but it is not the only way to interface with R.

|CitationClass=web }}</ref> (OSX/macOS only)

|CitationClass=web }}</ref>

Statistical frameworks which use R in the background include Jamovi and JASP.Template:Fact

ImplementationsEdit

The main R implementation is written primarily in C, Fortran, and R itself. Other implementations include:

Microsoft R Open (MRO) was an R implementation. As of 30 June 2021, Microsoft started to phase out MRO in favor of the CRAN distribution.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Commercial supportEdit

Template:Anchor

Although R is an open-source project, some companies provide commercial support:

  • Oracle provides commercial support for the Big Data Appliance, which integrates R into its other products.
  • IBM provides commercial support for in-Hadoop execution of R.

See alsoEdit

NotesEdit

Template:Notelist

ReferencesEdit

Template:Reflist

Further readingEdit

External linksEdit

Template:R (programming language) Template:GNU Template:Numerical analysis software Template:Statistical software Template:Programming languages

Template:Portal bar

Template:Authority control