R (programming language): Difference between revisions
imported>Alfie66 m →{{Anchor|CRAN}}Packages: update |
imported>Andi Fugard →Structure of a function: added note on lambda expressions |
||
| Line 1: | Line 1: | ||
{{Short description|Programming language for statistics}} | {{Short description|Programming language for statistics}} | ||
{{ | {{redirect-distinguish|R lang|Erlang|Rust (programming language)}} | ||
{{Use dmy dates|date=June 2018}} | {{Use dmy dates|date=June 2018}} | ||
{{Infobox programming language | {{Infobox programming language | ||
| Line 13: | Line 13: | ||
| developer = R Core Team | | developer = R Core Team | ||
| typing = [[dynamic typing|Dynamic]] | | typing = [[dynamic typing|Dynamic]] | ||
| influenced = [[Julia (programming language)|Julia]]<ref name="Introduction">{{cite web |url=https://docs.julialang.org/en/stable/manual/introduction/#man-introduction-1 |title=Introduction |work=The Julia Manual |access-date=2018-08-05 |archive-url=https://web.archive.org/web/20180620172516/https://docs.julialang.org/en/stable/manual/introduction/#man-introduction-1 |archive-date=20 June 2018 |url-status=dead |df=dmy-all }}</ref> [[pandas (software)|pandas]]<ref name="pandas">{{cite web|url=https://pandas.pydata.org/pandas-docs/stable/getting_started/comparison/comparison_with_r.html|title=Comparison with R|access-date=2024-07-15|work=pandas Getting started}}</ref> | | influenced = {{startflatlist}} | ||
* [[Julia (programming language)|Julia]]<ref name="Introduction">{{cite web |url=https://docs.julialang.org/en/stable/manual/introduction/#man-introduction-1 |title=Introduction |work=The Julia Manual |access-date=2018-08-05 |archive-url=https://web.archive.org/web/20180620172516/https://docs.julialang.org/en/stable/manual/introduction/#man-introduction-1 |archive-date=20 June 2018 |url-status=dead |df=dmy-all }}</ref> | |||
* [[pandas (software)|pandas]]<ref name="pandas">{{cite web|url=https://pandas.pydata.org/pandas-docs/stable/getting_started/comparison/comparison_with_r.html|title=Comparison with R|access-date=2024-07-15|work=pandas Getting started}}</ref> | |||
{{endflatlist}} | |||
| platform = [[arm64]] and [[x86-64]] | | platform = [[arm64]] and [[x86-64]] | ||
| license = [[GNU GPL#Version 2|GPL-2.0-or-later]]<ref name="gnugpl" /> | | license = [[GNU GPL#Version 2|GPL-2.0-or-later]]<ref name="gnugpl" /> | ||
| Line 28: | Line 31: | ||
* [[Scheme (programming language)|Scheme]]<ref name="Morandat" /> | * [[Scheme (programming language)|Scheme]]<ref name="Morandat" /> | ||
{{endflatlist}} | {{endflatlist}} | ||
| file_ext = {{Unbulleted list|. | | file_ext = {{Unbulleted list|.R<ref>{{Cite web|title=R scripts|url=http://mercury.webster.edu/aleshunas/R_learning_infrastructure/R%20scripts.html|access-date=2021-07-17|website=mercury.webster.edu}}</ref>|.r|.rdata|.rhistory|.rds|.rda<ref>{{Cite web|date=2017-06-09|title=R Data Format Family (.rdata, .rda)|url=https://www.loc.gov/preservation/digital/formats/fdd/fdd000470.shtml|access-date=2021-07-17|website=Loc.gov}}</ref>}} | ||
}} | }} | ||
| Line 55: | Line 58: | ||
R is [[free and open-source software]] distributed under the [[GNU General Public License]].<ref name="gnugpl">{{Cite web |title=R - Free Software Directory |url=https://directory.fsf.org/wiki/R#tab=Details |access-date=2024-01-26 |website=directory.fsf.org}}</ref><ref>{{Cite web |title=R: What is R? |url=https://www.r-project.org/about.html |access-date=2025-05-10 |website=www.r-project.org}}</ref> The language is implemented primarily in [[C (programming language)|C]], [[Fortran]], and [[Self-hosting (compilers)|R itself]]. [[Preprocessor|Precompiled]] [[executable]]s are available for the major [[operating system]]s (including [[Linux]], [[MacOS]], and [[Microsoft Windows]]). | R is [[free and open-source software]] distributed under the [[GNU General Public License]].<ref name="gnugpl">{{Cite web |title=R - Free Software Directory |url=https://directory.fsf.org/wiki/R#tab=Details |access-date=2024-01-26 |website=directory.fsf.org}}</ref><ref>{{Cite web |title=R: What is R? |url=https://www.r-project.org/about.html |access-date=2025-05-10 |website=www.r-project.org}}</ref> The language is implemented primarily in [[C (programming language)|C]], [[Fortran]], and [[Self-hosting (compilers)|R itself]]. [[Preprocessor|Precompiled]] [[executable]]s are available for the major [[operating system]]s (including [[Linux]], [[MacOS]], and [[Microsoft Windows]]). | ||
Its core is an [[interpreted language]] with a native [[command line interface]]. In addition, multiple [[Third-party software component|third-party]] applications are available as [[graphical user interface]]s; such applications include [[RStudio]] (an [[integrated development environment]]) and [[Jupyter]] (a [[notebook interface]]). | Its core is an [[interpreted language]] with a native [[command line interface]]. In addition, multiple [[Third-party software component|third-party]] applications are available as [[graphical user interface]]s; such applications include [[RStudio]] (an [[integrated development environment]]) and [[Jupyter]] (a [[notebook interface]]). And available for mobile through [[Termux]] and [[Google Colab]].<ref>{{bulleted list|{{Cite web |last=Conor I. |first=Anderson |date=2018-07-08 |title=Installing R on Android via Termux |url=https://conr.ca/post/installing-r-on-android-via-termux/ |access-date=2025-12-12 |website=Conor I. Anderson |language=en-ca}}|{{Cite journal |last=Quintana Denis |first=José Armando |date=2025 |title=Análisis de datos en R utilizando Google Colab |url=https://ebuah.uah.es/dspace/handle/10017/67257 |journal=Escuela Politécnica Superior |publisher=Universidad de Alcalá}}|{{Cite journal |last=Hewitt |first=Christopher |date=2024-04-01 |title=Exploring Canadian Geospatial Data with GeoPandas in Colab Notebooks |url=https://openjournals.uwaterloo.ca/index.php/acmla/article/view/5671 |journal=Bulletin - Association of Canadian Map Libraries and Archives (ACMLA) |language=en |issue=173 |pages=14–17 |doi=10.15353/acmla.n173.5671 |issn=2561-2263}}|{{Cite journal |last=Poolman |first=Toryn M. |last2=Townsend-Nicholson |first2=Andrea |last3=Cain |first3=Amanda |date=2022 |title=Teaching genomics to life science undergraduates using cloud computing platforms with open datasets |url=https://onlinelibrary.wiley.com/doi/abs/10.1002/bmb.21646 |journal=Biochemistry and Molecular Biology Education |language=en |volume=50 |issue=5 |pages=446–449 |doi=10.1002/bmb.21646 |issn=1539-3429 |pmc=9804627 |pmid=35972192}}|{{Cite journal |last=Nurdin |first=Naufal Muharam |title=Development of blood hemoglobin level early detection device based on a noninvasive optical platform |url=https://www.academia.edu/97712835/Development_of_blood_hemoglobin_level_early_detection_device_based_on_a_noninvasive_optical_platform |journal=Heliyon |doi=10.1016/J.HELIYON.2022.E11260}}|{{Cite web |title=Analisis Pola Asosiasi Penjualan Produk Ritel dengan Platform Google Colab |url=https://journal.ibrahimy.ac.id/index.php/JUSTIFY/article/view/5569 |access-date=2025-12-12 |website=journal.ibrahimy.ac.id |doi=10.35316/justify.v3i1.5569}}}}</ref> | ||
== History == | == History == | ||
{{ | {{Multiple image |total_width = 250 | align = left | ||
| | | header = Co-originators of the R language | ||
| | | image1 = Ross Ihaka (5189180796).jpg | ||
| caption1 = [[Ross Ihaka]] | |||
| image2 = Robert Gentleman on R Consortium.jpg | |||
| caption2 = [[Robert Gentleman (statistician)|Robert Gentleman]] | |||
}} | }} | ||
R was started by professors [[Ross Ihaka]] and [[Robert Gentleman (statistician)|Robert Gentleman]] as a programming language to teach introductory statistics at the [[University of Auckland]].<ref name="otago_pg12">{{Cite web | R was started by professors [[Ross Ihaka]] and [[Robert Gentleman (statistician)|Robert Gentleman]] as a programming language to teach introductory statistics at the [[University of Auckland]].<ref name="otago_pg12">{{Cite web | ||
|last=Ihaka | |last=Ihaka | ||
| Line 141: | Line 138: | ||
| page = xvii | | page = xvii | ||
| isbn = 978-1-492-09740-2 | | isbn = 978-1-492-09740-2 | ||
}}</ref> For example, packages can add reporting features (using packages such as [[RStudio#Reproducible analyses with R Markdown vignettes| | }}</ref> For example, packages can add reporting features (using packages such as [[RStudio#Reproducible analyses with R Markdown vignettes|R Markdown]], Quarto,<ref>{{Cite web |title=Quarto |url=https://quarto.org/ |access-date=2024-09-05 |website=Quarto |language=en}}</ref> [[knitr]], and [[Sweave]]) and support for various statistical techniques (such as [[linear]], [[generalized linear model|generalized linear]] and [[Nonlinear system|nonlinear]] modeling, classical [[Statistical hypothesis testing|statistical tests]], [[spatial analysis|spatial]] analysis, [[time-series analysis]], and [[Cluster analysis|clustering]]). Ease of package installation and use have contributed to the language's adoption in [[data science]].<ref name="Chambers2020">{{Cite journal | ||
|last=Chambers | |last=Chambers | ||
|first=John M. | |first=John M. | ||
| Line 153: | Line 150: | ||
|pages=462–476 | |pages=462–476 | ||
|doi=10.32614/RJ-2020-028 | |doi=10.32614/RJ-2020-028 | ||
|issn=2073-4859 | |doi-broken-date=3 December 2025 | ||
|issn=2073-4859 | |||
|doi-access=free | |doi-access=free | ||
|quote=The R language and related software play a major role in computing for data science. ... R packages provide tools for a wide range of purposes and users.}}</ref> | |quote=The R language and related software play a major role in computing for data science. ... R packages provide tools for a wide range of purposes and users.}}</ref> | ||
| Line 182: | Line 180: | ||
== Community == | == Community == | ||
[[File:RConsortiumLogo.webp|thumb|The R Consortium is one of the three main groups that support R]] | |||
There are three main groups that help support R software development: | 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 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 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 Consortium is a [[Linux Foundation]] project to develop R infrastructure. | ||
''[[The R Journal]]'' is an [[open access]], [[academic journal]] that features short to medium-length articles on the use and development of R. The journal includes articles on packages, programming tips, CRAN news, and foundation news. | ''[[The R Journal]]'' is an [[open access]], [[academic journal]] that features short to medium-length articles on the use and development of R. The journal includes articles on packages, programming tips, CRAN news, and foundation news. | ||
[[File:UseR Logo.png|thumb|125x125px|UseR! conference is one place the R community can gather at]] | |||
The R community hosts many conferences and in-person meetups.{{efn|Information about conferences and meetings is available in a community-maintained list on GitHub, {{URL|jumpingrivers.github.io/meetingsR/}}}} These groups include: | The R community hosts many conferences and in-person meetups.{{efn|Information about conferences and meetings is available in a community-maintained list on GitHub, {{URL|jumpingrivers.github.io/meetingsR/}}}} These groups include: | ||
| Line 195: | Line 194: | ||
* Directions in Statistical Computing (DSC) ([https://www.r-project.org/conferences/ website]) | * Directions in Statistical Computing (DSC) ([https://www.r-project.org/conferences/ website]) | ||
* [[R-Ladies]]: an organization to promote [[gender diversity]] in the R community ([https://rladies.org website]) | * [[R-Ladies]]: an organization to promote [[gender diversity]] in the R community ([https://rladies.org website]) | ||
* SatRdays: R-focused conferences held on Saturdays ([https://satrdays. | * SatRdays: R-focused conferences held on Saturdays ([https://satrdays.github.io/ website]) | ||
* | * Data Science & AI Conferences ([https://rstats.ai/ website]) | ||
* posit::conf (formerly known as rstudio::conf) ([https://www.posit.co/conference/ website]) | * posit::conf (formerly known as rstudio::conf) ([https://www.posit.co/conference/ website]) | ||
On social media sites such as Twitter, the hashtag <code>#rstats</code> can be used to follow new developments in the R community.<ref>{{Cite book | | On social media sites such as Twitter, the hashtag <code>#rstats</code> can be used to follow new developments in the R community.<ref>{{Cite book |last1=Wickham |first1=Hadley |url=https://r4ds.had.co.nz/introduction.html |title=1 Introduction {{!}} R for Data Science |last2=Grolemund |first2=Garrett |date=January 2017 |publisher=[[O'Reilly Media]] |isbn=978-1491910399 |edition=1st |language=en}}</ref> | ||
== Examples == | == Examples == | ||
| Line 217: | Line 216: | ||
> x <- 1:6 # Create a numeric vector in the current environment | > x <- 1:6 # Create a numeric vector in the current environment | ||
> y <- x^2 # Similarly, create a vector based on the values in x. | > y <- x^2 # Similarly, create a vector based on the values in x. | ||
> | > y # Print the vector’s contents. | ||
[1] 1 4 9 16 25 36 | [1] 1 4 9 16 25 36 | ||
| Line 238: | Line 237: | ||
> new_df <- data.frame(t(z_matrix), row.names = c("A", "B")) # Create a new dataframe object that contains the data from a transposed z_matrix, with row names 'A' and 'B' | > new_df <- data.frame(t(z_matrix), row.names = c("A", "B")) # Create a new dataframe 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 the new_df dataframe as X, Y, and Z. | > names(new_df) <- c("X", "Y", "Z") # Set the column names of the new_df dataframe as X, Y, and Z. | ||
> | > new_df # Print the current results. | ||
X Y Z | X Y Z | ||
A 2 6 12 | A 2 6 12 | ||
| Line 302: | Line 301: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Since R version 4.1.0, functions can be written in a short notation, which is useful for passing anonymous functions to higher-order functions:<ref>{{cite web|url=https://cran.r-project.org/doc/manuals/r-release/NEWS.html#:~:text=R%20now%20provides%20a%20shorthand%20notation%20for%20creating%20functions|title=NEWS|website=r-project.org}}</ref> | Since R version 4.1.0, functions can be written in a short notation (inspired by the [[lambda calculus]]), which is useful for passing anonymous functions to higher-order functions:<ref>{{cite web|url=https://cran.r-project.org/doc/manuals/r-release/NEWS.html#:~:text=R%20now%20provides%20a%20shorthand%20notation%20for%20creating%20functions|title=NEWS|website=r-project.org}}</ref> | ||
<syntaxhighlight lang="rout"> | <syntaxhighlight lang="rout"> | ||
> sapply(1:5, \(i) i^2) # here \(i) is the same as function(i) | > sapply(1:5, \(i) i^2) # here \(i) is the same as function(i) | ||
| Line 319: | Line 318: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
An alternative to nested functions is the use of intermediate objects, rather than the pipe operator: | |||
<syntaxhighlight lang="rout"> | <syntaxhighlight lang="rout"> | ||
| Line 326: | Line 325: | ||
> print(num_mtcars_subset) | > print(num_mtcars_subset) | ||
[1] 11 | [1] 11 | ||
</syntaxhighlight>While the pipe operator can produce code that is easier to read, | </syntaxhighlight>While the pipe operator can produce code that is easier to read, influential R programmers like [[Hadley Wickham]] suggest to chain together at most 10-15 lines of code using this operator and saving them into objects having meaningful names to avoid [[Code obfuscating|code obfuscation]].<ref>{{Cite book |last1=Wickham |first1=Hadley |url=https://r4ds.hadley.nz/ |title=R for data science: import, tidy, transform, visualize, and model data |last2=Çetinkaya-Rundel |first2=Mine |last3=Grolemund |first3=Garrett |date=2023 |publisher=O'Reilly |isbn=978-1-4920-9740-2 |edition=2nd |location=Beijing; Sebastopol, CA |chapter=4 Workflow: code style |oclc=on1390607935 |chapter-url=https://r4ds.hadley.nz/workflow-style.html}}</ref> | ||
=== Object-oriented programming === | === Object-oriented programming === | ||
The R language has native support for [[object-oriented programming]]. There are two native [[Application framework|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 simply by setting a "class" attribute in each object. The latter is a system like the [[CLOS|Common Lisp Object System (CLOS)]], with formal classes (also derived from [[S (programming language)#S4|S]]) and generic methods, which supports [[multiple dispatch]] and [[multiple inheritance]]<ref>{{cite web|url=https://stat.ethz.ch/R-manual/R-devel/library/base/html/UseMethod.html|title=Class Methods|access-date=2024-04-25}}</ref> | The R language has native support for [[object-oriented programming]]. There are two native [[Application framework|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 simply by setting a "class" attribute in each object. The latter is a system like the [[CLOS|Common Lisp Object System (CLOS)]], with formal classes (also derived from [[S (programming language)#S4|S]]) and generic methods, which supports [[multiple dispatch]] and [[multiple inheritance]]<ref>{{cite web|url=https://stat.ethz.ch/R-manual/R-devel/library/base/html/UseMethod.html|title=Class Methods|access-date=2024-04-25}}</ref> | ||
| Line 472: | Line 447: | ||
!Peanuts reference | !Peanuts reference | ||
!Reference | !Reference | ||
|- | |||
|4.5.2 | |||
|2025-10-31 | |||
|[Not] Part in a Rumble | |||
|<ref>{{Cite web |title=Read Peanuts by Charles Schulz on GoComics |url=https://www.gocomics.com/peanuts/1959/10/30 |access-date=2025-11-26 |website=www.gocomics.com |language=en}}</ref> | |||
|<ref>{{Cite web |title=[Rd] R 4.5.2 is released |url=https://hypatia.math.ethz.ch/pipermail/r-announce/2025/000715.html |access-date=2025-10-31 |website=hypatia.math.ethz.ch}}</ref> | |||
|- | |- | ||
|4.5.1 | |4.5.1 | ||
| Line 758: | Line 739: | ||
|2015-03-09 | |2015-03-09 | ||
|Smooth Sidewalk | |Smooth Sidewalk | ||
|<ref>{{Cite book |last=Schulz |first=Charles M. |title=Happiness is a warm puppy |date=2019 |publisher=New York | |<ref>{{Cite book |last=Schulz |first=Charles M. |title=Happiness is a warm puppy |date=2019 |publisher=Penguin Workshop |location=New York |isbn=978-1-5247-8995-4}}</ref>{{Page needed|date=April 2024}} | ||
|<ref>{{Cite web |title=R 3.1.3 is released |url=https://stat.ethz.ch/pipermail/r-announce/2015/000582.html |access-date=2024-04-07 |website=stat.ethz.ch}}</ref> | |<ref>{{Cite web |title=R 3.1.3 is released |url=https://stat.ethz.ch/pipermail/r-announce/2015/000582.html |access-date=2024-04-07 |website=stat.ethz.ch}}</ref> | ||
|- | |- | ||
| Line 876: | Line 857: | ||
** [[RKWard]] | ** [[RKWard]] | ||
** [[RStudio]] | ** [[RStudio]] | ||
** Positron<ref>{{Cite web |title=IDE from Posit PBC, the creators of RStudio {{!}} Positron - Home |url=https://positron.posit.co/ |access-date=2025-09-24 |website=Positron|language=en}}</ref> | |||
** Tinn-R<ref>{{Cite web |title=IDE/Editor para Linguagem R {{!}} Tinn-R - Home |url=https://tinn-r.org/en/ |access-date=2024-09-05 |website=Tinn-R |language=pt-br}}</ref> | ** Tinn-R<ref>{{Cite web |title=IDE/Editor para Linguagem R {{!}} Tinn-R - Home |url=https://tinn-r.org/en/ |access-date=2024-09-05 |website=Tinn-R |language=pt-br}}</ref> | ||
* General-purpose IDEs: | * General-purpose IDEs: | ||
| Line 919: | Line 901: | ||
|s2cid=1989369}}</ref> written in [[C++]]. | |s2cid=1989369}}</ref> written in [[C++]]. | ||
* [[Oracle Corporation|Oracle's]] [https://github.com/oracle/fastr FastR] built on [https://www.graalvm.org/ GraalVM]. | * [[Oracle Corporation|Oracle's]] [https://github.com/oracle/fastr FastR] built on [https://www.graalvm.org/ GraalVM]. | ||
* [[TIBCO Software|TIBCO]] Enterprise Runtime for R (TERR) to integrate with [[Spotfire]].<ref>Jackson, Joab (16 May 2013). [ | * [[TIBCO Software|TIBCO]] Enterprise Runtime for R (TERR) to integrate with [[Spotfire]].<ref>Jackson, Joab (16 May 2013). [https://www.pcworld.com/article/2038944/tibco-offers-free-r-to-the-enterprise.html TIBCO offers free R to the enterprise]. ''PC World''. Retrieved 20 July 2015.</ref> (The company also created [[S-PLUS|S-Plus]], an implementation of the S language.) | ||
Microsoft R Open (MRO) was an R implementation. As of 30 June 2021, Microsoft began to phase out MRO in favor of the CRAN distribution.<ref>{{cite web | Microsoft R Open (MRO) was an R implementation. As of 30 June 2021, Microsoft began to phase out MRO in favor of the CRAN distribution.<ref>{{cite web | ||
| Line 938: | Line 920: | ||
* [[Comparison of statistical packages]] | * [[Comparison of statistical packages]] | ||
* [[List of numerical-analysis software]] | * [[List of numerical-analysis software]] | ||
* [[List of computer books#R|List of R programming books]] | |||
* [[List of R software and tools]] | |||
* [[List of statistical software]] | * [[List of statistical software]] | ||
* [[Rmetrics]] | * [[Rmetrics]] | ||
| Line 952: | Line 936: | ||
== External links == | == External links == | ||
* [https://www.r-project.org/other-docs.html R documentation] | |||
* [https://developer.r-project.org/TechDocs/ R Technical Papers] | * [https://developer.r-project.org/TechDocs/ R Technical Papers] | ||
* [https://www.bigbookofr.com/ Big Book of R], curated list of R-related programming books | * [https://www.bigbookofr.com/ Big Book of R], curated list of R-related programming books | ||
| Line 980: | Line 965: | ||
[[Category:Numerical analysis software for macOS]] | [[Category:Numerical analysis software for macOS]] | ||
[[Category:Numerical analysis software for Windows]] | [[Category:Numerical analysis software for Windows]] | ||
[[Category:Programming languages]] | |||
[[Category:Programming languages created in 1993]] | [[Category:Programming languages created in 1993]] | ||
[[Category:Science software]] | [[Category:Science software]] | ||
[[Category:Statistical programming languages]] | [[Category:Statistical programming languages]] | ||
[[Category:Articles with example R code]] | [[Category:Articles with example R code]] | ||
Latest revision as of 09:49, 30 December 2025
Template:Short description Script error: No such module "Redirect-distinguish". Script error: No such module "Unsubst". Script error: No such module "Infobox".Script error: No such module "Check for unknown parameters".
R is a programming language for statistical computing and data visualization. It has been widely adopted in the fields of data mining, bioinformatics, data analysis, and data science.[1]
The core R language is extended by a large number of software packages, which contain reusable code, documentation, and sample data. Some of the most popular R packages are in the tidyverse collection, which enhances functionality for visualizing, transforming, and modelling data, as well as improves the ease of programming (according to the authors and users).[2]
R is free and open-source software distributed under the GNU General Public License.[3][4] The language is implemented primarily in C, Fortran, and R itself. Precompiled executables are available for the major operating systems (including Linux, MacOS, and Microsoft Windows).
Its core is an interpreted language with a native command line interface. In addition, multiple third-party applications are available as graphical user interfaces; such applications include RStudio (an integrated development environment) and Jupyter (a notebook interface). And available for mobile through Termux and Google Colab.[5]
History
Script error: No such module "Multiple image". R was started by professors Ross Ihaka and Robert Gentleman as a programming language to teach introductory statistics at the University of Auckland.[6] The language was inspired by the S programming language, with most S programs able to run unaltered in R.[7] The language was also inspired by Scheme's lexical scoping, allowing for local variables.[8]
The name of the language, R, comes from being both an S language successor and the shared first letter of the authors, Ross and Robert.[9] In August 1993, Ihaka and Gentleman posted a binary file of R on StatLib — a data archive website.[10] At the same time, they announced the posting on the s-news mailing list.[11] On 5 December 1997, R became a GNU project when version 0.60 was released.[12] On 29 February 2000, the 1.0 version was released.[13]
Script error: No such module "anchor".Packages
Script error: No such module "Labelled list hatnote".
R packages are collections of functions, documentation, and data that expand R.[14] For example, packages can add reporting features (using packages such as R Markdown, Quarto,[15] knitr, and Sweave) and support for various statistical techniques (such as linear, generalized linear and nonlinear modeling, classical statistical tests, spatial analysis, time-series analysis, and clustering). Ease of package installation and use have contributed to the language's adoption in data science.[16]
Immediately available when starting R after installation, base packages provide the fundamental and necessary syntax and commands for programming, computing, graphics production, basic arithmetic, and statistical functionality.[17]
An example is the tidyverse collection of R packages, which bundles several subsidiary packages to provide a common API. The collection specializes in tasks related to accessing and processing "tidy data",[18] which are data contained in a two-dimensional table with a single row for each observation and a single column for each variable.[19]
Installing a package occurs only once. For example, to install the tidyverse collection:[19]
> install.packages("tidyverse")
To load the functions, data, and documentation of a package, one calls the library() function. To load the tidyverse collection, one can execute the following code:Template:Efn
> # The package name can be enclosed in quotes
> library("tidyverse")
> # But the package name can also be used without quotes
> library(tidyverse)
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.[20] CRAN's name and scope mimic the Comprehensive TeX Archive Network (CTAN) and the Comprehensive Perl Archive Network (CPAN).[20] CRAN originally had only three mirror sites and twelve contributed packages.[21] As of 30 June 2025[update]Script error: No such module "Check for unknown parameters"., it has 90 mirrors[22] and 22,390 contributed packages.[23] Packages are also available in repositories such as R-Forge, Omegahat, and GitHub.[24][25][26]
To provide guidance on the CRAN web site, its Task Views area lists packages that are relevant for specific topics; sample topics include 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.
Community
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 that features short to medium-length articles on the use and development of R. The journal 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)
- Data Science & AI Conferences (website)
- posit::conf (formerly known as rstudio::conf) (website)
On social media sites such as Twitter, the hashtag #rstats can be used to follow new developments in the R community.[27]
Examples
Hello, World!
The following is a "Hello, World!" program:
> print("Hello, World!")
[1] "Hello, World!"
Here is an alternative version, which uses the cat() function:
> cat("Hello, World!")
Hello, World!
Basic syntax
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.[28]
> x <- 1:6 # Create a numeric vector in the current environment
> y <- x^2 # Similarly, create a vector based on the values in x.
> 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 transforms 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 then 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 dataframe 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 the new_df dataframe as X, Y, and Z.
> 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 dataframe column Z can be accessed using the syntax $Z, ['Z'], or [3], and the values are the same.
[1] TRUE
> attributes(new_df) # Print information about attributes of the new_df dataframe
$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; this can also be done using the rownames() function
> new_df
X Y Z
one 2 6 12
two 20 30 42
Structure of a function
R is able to create functions that add new functionality for code reuse.[29] Objects created within the body of the function (which are enclosed by curly brackets) remain accessible only from within the function, and any data type may be returned. In R, almost all functions and all user-defined functions are closures.[30]
The following is an example of creating a function to perform an arithmetic calculation:
# The function's input parameters are x and y.
# The function, 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--it could be replaced with simply `z` in this case.
return(z)
}
# As an alternative, the last statement executed in a function is returned implicitly.
f <- function(x, y) 3 * x + 4 * y
The following is some output from using the function defined above:
> 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
It is possible to define functions to be used as infix operators by using the special syntax `%name%`, where "name" is the function variable name:
> `%sumx2y2%` <- function(e1, e2) {e1 ^ 2 + e2 ^ 2}
> 1:3 %sumx2y2% -(1:3)
[1] 2 8 18
Since R version 4.1.0, functions can be written in a short notation (inspired by the lambda calculus), which is useful for passing anonymous functions to higher-order functions:[31]
> sapply(1:5, \(i) i^2) # here \(i) is the same as function(i)
[1] 1 4 9 16 25
Native pipe operator
In R version 4.1.0, a native pipe operator, |>, was introduced.[32] This operator allows users to chain functions together, rather than using nested function calls.
> nrow(subset(mtcars, cyl == 4)) # Nested without the pipe character
[1] 11
> mtcars |> subset(cyl == 4) |> nrow() # Using the pipe character
[1] 11
An alternative to nested functions is the use of intermediate objects, rather than the pipe operator:
> mtcars_subset_rows <- subset(mtcars, cyl == 4)
> num_mtcars_subset <- nrow(mtcars_subset_rows)
> print(num_mtcars_subset)
[1] 11
While the pipe operator can produce code that is easier to read, influential R programmers like Hadley Wickham suggest to chain together at most 10-15 lines of code using this operator and saving them into objects having meaningful names to avoid code obfuscation.[33]
Object-oriented programming
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 simply by setting a "class" attribute in each object. The latter is a system like the Common Lisp Object System (CLOS), with formal classes (also derived from S) and generic methods, which supports multiple dispatch and multiple inheritance[34]
In the example below, summary() is a generic function that dispatches to different methods depending on whether its argument is a numeric vector or a factor:
> 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
Modeling and plotting
plot.lm() function). Mathematical notation is allowed in labels, as shown in the 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.
# Create x and y values
x <- 1:6
y <- x^2
# Linear regression model: y = A + B * x
model <- lm(y ~ x)
# Display an in-depth summary of the model
summary(model)
# Create a 2-by-2 layout for figures
par(mfrow = c(2, 2))
# Output diagnostic plots of the model
plot(model)
The output from the summary() function in the preceding code block is as follows:
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
Mandelbrot set
This example of a Mandelbrot set highlights the use of complex numbers. It models the first 20 iterations of the equation z = z2 + c, where c represents different complex constants.
To run this sample code, it is necessary to first install the package that provides the write.gif() function:
install.packages("caTools")
The sample code is as follows:
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)
)
# reshape as matrix of complex numbers
C <- matrix(C, dy, dx)
# initialize output 3D array
X <- array(0, c(dy, dx, 20))
Z <- 0
# 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)
Version names
All R version releases from 2.14.0 onward have codenames that make reference to Peanuts comics and films.[35][36][37]
In 2018, core R developer Peter Dalgaard presented a history of R releases since 1997.[38] Some notable early releases before the named releases include the following:
- Version 1.0.0, released on 29 February 2000, a leap day
- Version 2.0.0, released on 4 October 2004, "which at least had a nice ring to it"[38]
The idea of naming R version releases was inspired by the naming system for Debian and Ubuntu versions. Dalgaard noted an additional reason for the use of Peanuts references in R codenames—the humorous observation that "everyone in statistics is a P-nut."[38]
| Version | Release date | Name | Peanuts reference | Reference |
|---|---|---|---|---|
| 4.5.2 | 2025-10-31 | [Not] Part in a Rumble | [39] | [40] |
| 4.5.1 | 2025-06-13 | Great Square Root | [41] | [42] |
| 4.5.0 | 2025-04-11 | How About a Twenty-Six | [43] | [44] |
| 4.4.3 | 2025-02-28 | Trophy Case | [45] | [46] |
| 4.4.2 | 2024-10-31 | Pile of Leaves | [47] | [48] |
| 4.4.1 | 2024-06-14 | Race for Your Life | [49] | [50] |
| 4.4.0 | 2024-04-24 | Puppy Cup | [51] | [52] |
| 4.3.3 | 2024-02-29 | Angel Food Cake | [53] | [54] |
| 4.3.2 | 2023-10-31 | Eye Holes | [55] | [56] |
| 4.3.1 | 2023-06-16 | Beagle Scouts | [57] | [58] |
| 4.3.0 | 2023-04-21 | Already Tomorrow | [59][60][61] | [62] |
| 4.2.3 | 2023-03-15 | Shortstop Beagle | [63] | [64] |
| 4.2.2 | 2022-10-31 | Innocent and Trusting | [65] | [66] |
| 4.2.1 | 2022-06-23 | Funny-Looking Kid | [67][68][69][70][71][72] | [73] |
| 4.2.0 | 2022-04-22 | Vigorous Calisthenics | [74] | [75] |
| 4.1.3 | 2022-03-10 | One Push-Up | [74] | [76] |
| 4.1.2 | 2021-11-01 | Bird Hippie | [77][78] | [76] |
| 4.1.1 | 2021-08-10 | Kick Things | [79] | [80] |
| 4.1.0 | 2021-05-18 | Camp Pontanezen | [81] | [82] |
| 4.0.5 | 2021-03-31 | Shake and Throw | [83] | [84] |
| 4.0.4 | 2021-02-15 | Lost Library Book | [85][86][87] | [88] |
| 4.0.3 | 2020-10-10 | Bunny-Wunnies Freak Out | [89] | [90] |
| 4.0.2 | 2020-06-22 | Taking Off Again | [91] | [92] |
| 4.0.1 | 2020-06-06 | See Things Now | [93] | [94] |
| 4.0.0 | 2020-04-24 | Arbor Day | [95] | [96] |
| 3.6.3 | 2020-02-29 | Holding the Windsock | [97] | [98] |
| 3.6.2 | 2019-12-12 | Dark and Stormy Night | See It was a dark and stormy night#Literature[99] | [100] |
| 3.6.1 | 2019-07-05 | Action of the Toes | [101] | [102] |
| 3.6.0 | 2019-04-26 | Planting of a Tree | [103] | [104] |
| 3.5.3 | 2019-03-11 | Great Truth | [105] | [106] |
| 3.5.2 | 2018-12-20 | Eggshell Igloos | [107] | [108] |
| 3.5.1 | 2018-07-02 | Feather Spray | [109] | [110] |
| 3.5.0 | 2018-04-23 | Joy in Playing | [111] | [112] |
| 3.4.4 | 2018-03-15 | Someone to Lean On | [113][114][115] | [116] |
| 3.4.3 | 2017-11-30 | Kite-Eating Tree | See Kite-Eating Tree[117] | [118] |
| 3.4.2 | 2017-09-28 | Short Summer | See It Was a Short Summer, Charlie Brown | [119] |
| 3.4.1 | 2017-06-30 | Single Candle | [120] | [121] |
| 3.4.0 | 2017-04-21 | You Stupid Darkness | [120] | [122] |
| 3.3.3 | 2017-03-06 | Another Canoe | [123] | [124] |
| 3.3.2 | 2016-10-31 | Sincere Pumpkin Patch | [125] | [126] |
| 3.3.1 | 2016-06-21 | Bug in Your Hair | [127] | [128] |
| 3.3.0 | 2016-05-03 | Supposedly Educational | [129] | [130] |
| 3.2.5 | 2016-04-11 | Very, Very Secure Dishes | [131] | [132][133][134] |
| 3.2.4 | 2016-03-11 | Very Secure Dishes | [131] | [135] |
| 3.2.3 | 2015-12-10 | Wooden Christmas-Tree | See A Charlie Brown Christmas[136] | [137] |
| 3.2.2 | 2015-08-14 | Fire Safety | [138][139] | [140] |
| 3.2.1 | 2015-06-18 | World-Famous Astronaut | [141] | [142] |
| 3.2.0 | 2015-04-16 | Full of Ingredients | [143] | [144] |
| 3.1.3 | 2015-03-09 | Smooth Sidewalk | [145]Script error: No such module "Unsubst". | [146] |
| 3.1.2 | 2014-10-31 | Pumpkin Helmet | See You're a Good Sport, Charlie Brown | [147] |
| 3.1.1 | 2014-07-10 | Sock it to Me | [148][149][150][151] | [152] |
| 3.1.0 | 2014-04-10 | Spring Dance | [101] | [153] |
| 3.0.3 | 2014-03-06 | Warm Puppy | [154] | [155] |
| 3.0.2 | 2013-09-25 | Frisbee Sailing | [156] | [157] |
| 3.0.1 | 2013-05-16 | Good Sport | [158] | [159] |
| 3.0.0 | 2013-04-03 | Masked Marvel | [160] | [161] |
| 2.15.3 | 2013-03-01 | Security Blanket | [162] | [163] |
| 2.15.2 | 2012-10-26 | Trick or Treat | [164] | [165] |
| 2.15.1 | 2012-06-22 | Roasted Marshmallows | [166] | [167] |
| 2.15.0 | 2012-03-30 | Easter Beagle | [168] | [169] |
| 2.14.2 | 2012-02-29 | Gift-Getting Season | See It's the Easter Beagle, Charlie Brown[170] | [171] |
| 2.14.1 | 2011-12-22 | December Snowflakes | [172] | [173] |
| 2.14.0 | 2011-10-31 | Great Pumpkin | See It's the Great Pumpkin, Charlie Brown[174] | [175] |
| r-devel | N/A | Unsuffered Consequences | [176] | [38] |
Interfaces
Script error: No such module "Gallery".
R is installed with a command line console by default, but there are multiple ways to interface with the language:
- Integrated development environment (IDE):
- R.app[177] (OSX/macOS only)
- Rattle GUI
- R Commander
- RKWard
- RStudio
- Positron[178]
- Tinn-R[179]
- General-purpose IDEs:
- Eclipse via the StatET plugin
- Visual Studio via R Tools for Visual Studio.
- Source-code editors:
- Other scripting languages:
- Python (website)
- Perl (website)
- Ruby (source code)
- F# (website)
- Julia (source code).
- General-purpose programming languages:
- Java via the Rserve socket server
- .NET C# (website)
Statistical frameworks that use R in the background include Jamovi and JASP.Script error: No such module "Unsubst".
Implementations
The main R implementation is written primarily in C, Fortran, and R itself. Other implementations include the following:
- pretty quick R (pqR), by Radford M. Neal, which attempts to improve memory management.
- Renjin for the Java Virtual Machine.
- CXXR and Riposte[180] written in C++.
- Oracle's FastR built on GraalVM.
- TIBCO Enterprise Runtime for R (TERR) to integrate with Spotfire.[181] (The company also created S-Plus, an implementation of the S language.)
Microsoft R Open (MRO) was an R implementation. As of 30 June 2021, Microsoft began to phase out MRO in favor of the CRAN distribution.[182]
Commercial support
Script error: No such module "anchor".
Although R is an open-source project, some companies provide commercial support:
- Oracle provides commercial support for its Big Data Appliance, which integrates R into its other products.
- IBM provides commercial support for execution of R within Hadoop.
See also
- Comparison of numerical-analysis software
- Comparison of statistical packages
- List of numerical-analysis software
- List of R programming books
- List of R software and tools
- List of statistical software
- Rmetrics
Notes
References
<templatestyles src="Reflist/styles.css" />
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Template:Bulleted list
- ↑ Script error: No such module "citation/CS1".
- ↑ Cite error: Script error: No such module "Namespace detect".Script error: No such module "Namespace detect".
- ↑ Cite error: Script error: No such module "Namespace detect".Script error: No such module "Namespace detect".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Wickham, Hadley (2014). "Tidy Data" (PDF). Journal of Statistical Software. 59 (10). doi:10.18637/jss.v059.i10.
- ↑ a b Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "Citation/CS1".
- ↑ Template:Cite Q.
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b c d Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Jackson, Joab (16 May 2013). TIBCO offers free R to the enterprise. PC World. Retrieved 20 July 2015.
- ↑ Script error: No such module "citation/CS1".
Script error: No such module "Check for unknown parameters".
Further reading
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
External links
- R documentation
- R Technical Papers
- Big Book of R, curated list of R-related programming books
- Books Related to R - R Project, partially annotated curated list of books relating to R or S.
Template:R (programming language) Script error: No such module "Navbox". Script error: No such module "Navbox". Script error: No such module "Navbox". Script error: No such module "Navbox".
Script error: No such module "Authority control".
- Pages with script errors
- Pages with reference errors
- Pages with broken file links
- Articles containing potentially dated statements from June 2025
- Articles with invalid date parameter in template
- All articles containing potentially dated statements
- R (programming language)
- Array programming languages
- Cross-platform free software
- Data mining and machine learning software
- Data-centric programming languages
- Dynamically typed programming languages
- Free plotting software
- Free statistical software
- Functional languages
- GNU Project software
- Literate programming
- Numerical analysis software for Linux
- Numerical analysis software for macOS
- Numerical analysis software for Windows
- Programming languages
- Programming languages created in 1993
- Science software
- Statistical programming languages
- Articles with example R code