R is a free software environment for statistical computing and graphics.
R is a language and environment for statistical computing and graphics. It is a GNU project which is similar to the S language and environment which was developed at Bell Laboratories (formerly AT&T, now Lucent Technologies) by John Chambers and colleagues. R can be considered as a different implementation of S. There are some important differences, but much code written for S runs unaltered under R.
R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, …) and graphical techniques, and is highly extensible. The S language is often the vehicle of choice for research in statistical methodology, and R provides an Open Source route to participation in that activity.
One of R’s strengths is the ease with which well-designed publication-quality plots can be produced, including mathematical symbols and formulae where needed. Great care has been taken over the defaults for the minor design choices in graphics, but the user retains full control.
R is available as Free Software under the terms of the Free Software Foundation’s GNU General Public License in source code form. It compiles and runs on a wide variety of UNIX platforms and similar systems (including FreeBSD and Linux), Windows and MacOS.
The LaTeX class ‘jss’ bundled in ‘share/texmf/tex/latex/jss.cls’ has been updated to work with ‘hyperref’ version 7.01q (2026/04/24).
Plain-text (and legacy HTML) conversion for a simple Rd \eqn{} now handles \geq, \leq, \neq and \ne in addition to \ge and \le (PR#19070).
Bug Fixes
abbreviate() now works better, using iswlower() and *upper() to treat “wide” characters, thanks to Kevin's PR#19058.
cut(1:11, {}) now signals an error for the invalid breaks, fixing PR#19057, thanks to Kevin Ushey.
all() signals an error now, as some similar coercions; previously, the coercion of the symbol resulted in NULL internally, raised a warning, and could access illegal memory; thanks to Kevin Ushey's PR#19054.
stl() now checks its 3 x 3 tuning parameters on the R level; stl(, s.window = 0) now “works” instead dumping core, stl(, s.window = 1) “works” correctly, too. Also, the summary() method mentions the robustness weights only if any robustness iterations happened.
Further, stl() is now based on C code, translated from previous Fortran, triggered by a flang 22 compiler optimization bug (-O2).
The border case zapsmall(x, digits=Inf) where x contains an Inf entry no longer returns all NaN but rather x. The improved help page now has more non-default examples.
wilcox.test(x, exact=FALSE, correct = k)'s p-value computation got a missing dnorm(z) factor, and so did the 2-sample case, in addition to more fixes.
The data part of getGenerics() listed package names for generic functions defined in more than one package. Now it lists generic function names, as intended. Thanks to Michael Chirico for report and patch proposal (PR#19080).
Overly long dyn.load() error messages (C level dlerror()), should no longer corrupt its state, thanks to Ivan Krylov's PR#19029 report and patch.
as.matrix() again produces a numeric matrix, and the c() and subassignment methods for POSIXlt objects work correctly more often, e.g., without a "tzone" attribute, back porting a few of the PR#18989 fixes from R-devel, both thanks to Suharto Anggono.
In methods, as() now correctly coerces S4 objects to S4 superclasses extending old-style classes, instead of returning only the S3 part.