R Programming
R is a programming language and software environment for statistical computing and graphics. You use it to turn data into calculations, models, and visualizations, often through reusable scripts and packages.
itProgramming languages | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — R Programming
R is a language and environment for asking questions of data, then leaving enough evidence that somebody else can ask the same questions again. Before this arrangement, an analysis could be a stack of hand calculations, a spreadsheet with mysterious cells, or a console session that vanished when its window did. R gives the calculation a home. It does not, alas, make the calculation correct by wearing a lab coat.
The main trick is objects. A vector holds a sequence of values. A data frame holds a table. A function gives a repeated operation a name. Each expression can turn one object into another, so an analysis becomes a trail: data arrives, values are transformed, a model or plot appears, and the intermediate steps remain available for inspection. This is much more reassuring than a chart that has arrived without its luggage.
The slightly surprising part is that an interactive session is helpful and dangerous in the same way. The console lets you inspect a data frame, test an index, and learn what a function does. It also remembers objects that your final script may never create. Put the import, transformation, model, and output in a script, then run it again from a clean session. That is where a result starts behaving like evidence rather than a lucky photograph.
Packages extend the environment with functions, data, and documentation. CRAN, the Comprehensive R Archive Network, distributes many of them, and Task Views group them by subject. Start with base R's vectors, data frames, indexing, functions, and help. Add a package because it solves a defined problem, not because the package shelf is impressively tall. A package is an extension, not a replacement for knowing what shape your data has.
Read the Intro when you want the map of R's objects and tradeoffs. Use Slides when you want the data-to-result loop in compact form. Keep the Cheatsheet nearby for names and decision rules. Then use the Practice tab to run a complete script that prints a summary and writes a plot. The Quiz can check whether the vocabulary has settled in. From there, the Reference tab points from the official manuals to the package ecosystems that fit your work.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://www.r-project.org/
Supports
- R is a free software environment for statistical computing and graphics.
- The R Project provides R downloads through CRAN mirrors.
- https://cran.r-project.org/doc/manuals/r-release/R-intro.html
Supports
- R is a language and environment for statistical computing and graphics.
- R provides data handling, array calculation, statistical analysis, graphics, and a programming language.
- R analyses store intermediate results in objects for later interrogation.
- The manual covers vectors, data frames, functions, modeling, graphics, packages, scripting, and help.
- R is case sensitive and evaluates expressions and assignments.
- CRAN and packages extend the base environment.
- https://cran.r-project.org/manuals.html
Supports
- R manuals cover introductory use, data import and export, installation and administration, language definition, extensions, and package references.
- Manuals change with R releases.
- https://cran.r-project.org/doc/manuals/r-release/R-data.html
Supports
- R documents its data import and export facilities in a dedicated official manual.
- https://cran.r-project.org/web/views/
Supports
- CRAN Task Views organize packages by subject area.
- https://github.com/uhub/awesome-r
Supports
- The curated awesome R list includes R frameworks, libraries, and software, including ggplot2, dplyr, data.table, and RStudio-related resources.
- https://ggplot2.tidyverse.org/reference/
Supports
- ggplot2 begins plots with a ggplot object and supports layers, scales, coordinates, and facets.
- https://dplyr.tidyverse.org/
Supports
- dplyr provides a grammar for data manipulation in R.
- https://posit.co/products/open-source/rstudio/
Supports
- RStudio is an integrated development environment for R.
- https://rdatatable.gitlab.io/data.table/
Supports
- data.table provides high-performance data manipulation tools for R.
- https://journal.r-project.org/articles/RJ-2009-014/
Supports
- R began around 1990 as an informal project of Robert Gentleman and Ross Ihaka.
- The R Core group was formalized in 1997.
- The R Project's package ecosystem grew through contributed packages.
- https://journal.r-project.org/articles/RJ-2020-028/
Supports
- R was described publicly in a 1996 paper by Ihaka and Gentleman.
- R version 1.0.0 was released on 2000-02-29.
- R grew from an S-like implementation into a free platform for data analysis and graphics.
- https://www.r-project.org/foundation/
Supports
- The R Foundation supports the R project, holds copyright for R software and documentation, and provides a reference point for institutions and commercial enterprises.
- https://resources.rstudio.com/tags/rstudio-ide/
Supports
- RStudio announced its open-source IDE for R in February 2011.
- https://posit.co/blog/introducing-shiny
Supports
- Shiny is a free and open-source R package for building interactive web applications.
- https://arxiv.org/abs/1501.01613
Supports
- R Markdown combines Markdown with R code and generated results for reproducible documents.
- https://posit.co/blog/renv-project-environments-for-r
Supports
- renv captures a project's R package state in a lockfile and supports reproducible collaboration.
- https://posit.co/products/
Supports
- Posit Workbench provides managed browser-based development environments.
- Posit Connect publishes data applications, reports, APIs, and websites.
- Posit Package Manager provides a managed source of R and Python packages.
- https://docs.posit.co/pct/index.html
Supports
- Posit Workbench, Posit Connect, and Posit Package Manager are enterprise products for developing, publishing, and managing data-science work.
- https://posit.co/products/open-source/shiny-server
Supports
- Shiny Server Open Source deploys Shiny applications to the web.
