R terminal | |
| Paradigms | Multi-paradigm: Array programming, object-oriented, imperative, functional |
|---|---|
| Designed by | Ross Ihaka and Robert Gentleman (statistician) |
| Developer | R Core Team |
| First appeared | August 1993 |
| Stable release | 4.6.1 |
| License | GNU GPL v2 |
| Filename extensions |
|
| Website | www |
| Influenced by | |
| Influenced | |
| Julia | |
| |
R is a programming language and free software environment for statistics. R is a language built for a specific purpose. It is strictly designed for statistical analysis. The algorithms for many statistical models are devised in R. Precisely R is the language of Statistical Analyzers. It’s an open source and the best suite for the statisticians to develop statistical softwares.
The R language was originally made for statistics. But today, it is also used in many scientific fields including ecology.
A list of changes in R releases is maintained in various "news" files at CRAN (Comprehensive R Archive Network). Some highlights are listed below for several major releases.
| Release | Date | Description |
|---|---|---|
| 0.16 | This is the last test version. | |
| 0.49 | 1997-04-23 | This is the oldest source release which is currently available on CRAN. CRAN is started on this date, with 3 mirrors that initially hosted 12 packages. |
| 0.60 | 1997-12-05 | R becomes an official part of the GNU Project. The code is hosted and maintained on CVS. |
| 0.65.1 | 1999-10-07 | First versions of update.packages and install.packages functions for downloading and installing packages from CRAN. |
| 1.0 | 2000-02-29 | The developers declared that it is stable enough for production use. |
| 1.4 | 2001-12-19 | S4 methods are introduced and the first version for Mac OS X is made available soon after. |
| 1.8 | 2003-10-08 | Introduced a flexible condition handling mechanism for signalling and handling condition objects. |
| 2.0 | 2004-10-04 | Introduced fast loading of data with minimal expense of system memory. |
| 2.1 | 2005-04-18 | Support for UTF-8 encoding. They also started of internationalization and localization for different languages. |
| 2.6.2 | 2008-02-08 | Last version to support Windows 95, 98, Me and NT 4.0 |
| 2.11 | 2010-04-22 | Support for Windows 64 bit systems. |
| 2.12.2 | 2011-02-25 | Last version to support Windows 2000 |
| 2.13 | 2011-04-14 | Adding a new compiler function that allows speeding up functions by converting them to byte-code. |
| 2.14 | 2011-10-31 | Added mandatory namespaces for packages. Added a new parallel package. |
| 2.15 | 2012-03-30 | New load balancing functions. Improved serialization speed for long vectors. |
| 3.0.0 | 2013-04-03 | Support for numeric index values 231 and larger on 64 bit systems. |
| 3.3.3 | 2017-03-06 | Last version to support Microsoft Windows XP. |
| 3.4.0 | 2017-04-21 | Just-in-time compilation (JIT) of functions and loops to byte-code enabled by default. |
| 3.5.0 | 2018-04-23 | Packages byte-compiled on installation by default. Compact internal representation of integer sequences. Added a new serialization format to support compact internal representations. |
| 3.6.0 | 2019-04-26 | |
| 4.0.0 | 2020-04-24 |
R has local communities worldwide for users to share ideas and learn.
There are a growing number of R events bringing its users together, such as conferences (e.g. useR!, WhyR?, conectaR, SatRdays) and other meetups.
The official annual gathering of R users is called "useR!". The first such event was useR! 2004 in May 2004, Vienna, Austria. After skipping 2005, the useR! conference has been held annually. Subsequent conferences have included:
Future conferences planned are as follows:
The R Journal is the open access refereed journal of the R project. It features articles on the use and development of the R language.
The following examples illustrate the basic syntax of the language and use of the command-line interface.
In R, the generally preferred assignment operator is an arrow made from two characters <-. Although = can be used instead.
> x <- 1:6 # Create vector.
> y <- x^2 # Create vector by formula.
> print(y) # Print the vector’s contents.
[1] 1 4 9 16 25 36
> mean(y) # Arithmetic mean of vector.
[1] 15.16667
> var(y) # Sample variance of vector.
[1] 178.9667
> model <- lm(y ~ x) # Linear regression model y = A + B * x.
> print(model) # Print the model’s results.
Call:
lm(formula = y ~ x)
Coefficients:
(Intercept) x
-9.333 7.000
> summary(model) # Display an in-depth summary of the model.
Call:
lm(formula = y ~ x)
Residuals:
1 2 3 4 5 6
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
> par(mfrow = c(2, 2)) # Create a 2 by 2 layout for figures.
> plot(model) # Output diagnostic plots of the model.
{{cite book}}: |website= ignored (help)<-
[...] we recommend the consistent use of the preferred assignment operator '<-' (rather than '=') for assignment.
| Media from Commons | |
| Textbooks from Wikibooks | |
| Learning resources from Wikiversity | |