Positron, RStudio and VS Code

Foundation – the working environment around R

This module of the companion curriculum is about the program you sit in while R does the computing: the IDE, an integrated development environment. The default IDE for the course is Positron, and most of the page is a tour of it, pane by pane, written for someone who has never opened it and for someone who has used RStudio for years and wants to know what has moved. The two shorter sections that follow give RStudio and VS Code in broad strokes, with a table for each that shows what changes when you move from it to Positron. The page describes the releases that were current on 8 September 2026, which were Positron 2026.09, RStudio 2026.08 and VS Code 1.136, and the sources listed at the end give the origin of each fact.

R itself is taught in getting started with R, which works the same way in any of the three IDEs. The download and install steps for each IDE on Windows, macOS and Linux are on the setup page, and the problems that come up are on the help page.

1. What an IDE does

R on its own is a program that reads instructions and returns answers. An IDE wraps four things around it: an editor, where you write code into files that you keep; a console, where a line runs the moment you press Enter; a view of what exists, meaning the objects in the session, the data frames behind them and the plots they produce; and tools, a terminal, a source-control pane, a way of rendering a document. The three IDEs on this page arrange those four things differently and name them differently, but every one of them has all four, which is why the course runs in all three.

The course asks little of an IDE. It has to open the workspace folder, so that the paths in the code point at the data. It has to run a script line by line and as a whole, provide an R console, and show a data frame and a plot. It also has to render a Quarto document, because the report you fill in on the day is one, and rendering it is what gives your preregistration block its timestamp. Each of the three does all of this; the difference is in how much is there before you install anything, and in what the data viewer and the assistant can do.

2. Positron

Positron is the data-science IDE made by Posit, released as a stable product in 2025 after two years of public beta. It is built on the open-source core of VS Code, so anyone who has used VS Code will find the window familiar, and it adds what VS Code lacks for data work: an R console in place of a terminal running R, panes for variables, data, plots and help, and R and Python treated as equals. It is free, runs on Windows, macOS and Linux, and the Posit documentation for it is at positron.posit.co.

2.1 The window

Five areas make up the window. Down the far left is the Activity Bar, a strip of icons that switch what the side bar shows: the Explorer (your files), Search, Source Control, Extensions and Posit Assistant. Beside it is the Primary Side Bar, usually showing the files of the folder you opened. The editor fills the middle, with one tab per open file. Along the bottom is the Panel, holding the Console, the Terminal, the Problems list and the Output log. And on the right is the Secondary Side Bar, which holds the session views: Variables, Plots, Help, Viewer, Connections and Packages.

For an RStudio user the mapping is direct: Source top-left is the editor, Console bottom-left is the Panel, Environment top-right is the Variables pane, and the Files, Plots, Packages, Help and Viewer tabs of the bottom-right are spread between the Primary Side Bar (files) and the Secondary Side Bar (everything else). Positron ships four layout presets, reached through the layout menu in the top-right corner of the window. Stacked and Side-by-side are the two general arrangements, Notebook widens the editor for cell-by-cell work, and Assistant gives the assistant a column of its own. Any pane can be dragged elsewhere or hidden, and the layout documentation covers the details.

2.2 The console and the session

At the top right of the window is the interpreter selector, which names the R that the console is running. Positron finds R for itself when it starts, looking in the standard installation locations of each system and, on Windows, in the registry entry that the R installer writes, and it requires R 4.2 or later. If more than one R is installed the selector lists them all, and you can run several sessions at once, in different versions if you want to, which RStudio cannot do. When the selector is empty, the Command Palette command R: Select Interpreter is the way to point Positron at an R by hand, and the help page has the cases where that is needed.

The console works as you would expect: type, press Enter, read the answer. The 2026.09 release reworked how it takes input. Code submission is faster, always shows that something is happening, and can be cancelled while Positron is still checking whether the expression is complete. A block of several statements pasted in at once is split into complete expressions and run one at a time, so an error in the middle stops the run at the statement that caused it. Restarting the session, which clears every object and reloads nothing, is a button beside the selector and a good habit before you believe a number.

2.3 Running code

With an .R file open, Ctrl+Enter (Cmd+Enter on a Mac) sends the statement under the cursor to the console and moves down to the next, or sends the selection if there is one. The play button at the top of the editor runs the whole file. In a .qmd file each code chunk has its own Run Cell link, and there are commands to run all the chunks above the cursor, which is how the report on the day is worked through. The full list of shortcuts is on the keyboard shortcuts page, and RStudio users can switch the whole set to what they know: open the settings, search for RStudio keybindings, tick the box and restart Positron, which the migration page describes.

2.4 The Variables pane

The Variables pane lists every object in the session with its type and size, and a data frame expands to show its columns, each with its type and a preview of its values. A search box at the top filters the list, which matters once a session holds dozens of objects. The pane does the job of the Environment tab in RStudio, with one omission: there is no button to save the objects in the session to disk and reload them next time, because reloading saved objects is a common way for an analysis to stop being reproducible. Every object that you need should be recreated by your script.

Beside each data frame is an icon that opens it in the Data Explorer, which the next section describes.

2.5 The Data Explorer

The Data Explorer is the part of Positron that most changes how it feels to work with data, and it is the pane to try first. It opens in four ways: from the icon beside a data frame in the Variables pane; from the command View Data Frame at Cursor in the Command Palette or the right-click menu of an .R or .qmd file; from View(euframes) in the console, which is the same call that RStudio users know; and directly from a file in the Explorer, since a .csv, .tsv, .parquet or .xlsx file, compressed or not, opens without being read into R at all.

Three parts make it up. The data grid is the spreadsheet-like view of the cells, with a click on a column header to sort. The summary panel, down the left, gives summary statistics for every column: type, count of missing values, and the distribution, so that the shape of a dataset is visible before any code is written. And the filter bar holds filters on specific columns, which reduce the rows on display. Filters and sorts are ephemeral. They change what you are looking at and leave the object in the session as it was, so narrowing the view changes nothing in your analysis.

The 2026.09 release added Import Data, a dialog that reads a CSV, TSV, Excel or Parquet file and writes the R code that does it, using readr, into your script. Filters and sorts built in the dialog can be reproduced in the generated code, which turns a quick look at a file into a line you can keep. A CSV opened in the Explorer can also be opened as plain text from its action bar, for the times when the raw file is what you need to look at.

2.6 Plots, Help and Viewer

The Plots pane shows the figure that the last plotting call produced, keeps a history of earlier ones as thumbnails, and has controls to zoom, copy and save. The Help pane opens whenever you ask for help, with ?feols in the console or with the cursor on a function name and F1, and the help appears as a rendered page with working links. The Viewer shows HTML output: an interactive table, an htmlwidget, and the preview of a Quarto document when you render one.

2.7 Quarto

The Quarto extension ships inside Positron, so a .qmd file opens with syntax highlighting, runnable chunks, and the Preview command (Ctrl+Shift+K, or Cmd+Shift+K) that renders the document and shows it in the Viewer. A visual editor for the prose is a button away, and the Quarto documentation for Positron covers both. What has varied between releases is whether the Quarto command-line tool itself is bundled; the course check script, R/check_setup.R, tells you whether it is present on your machine, and the setup page says what to do if not.

2.8 Packages and connections

The Packages pane, in the right-hand side bar, lists the packages installed for the current session, and since 2026.09 it also shows known security vulnerabilities for installed R and Python packages, scored on the Common Vulnerabilities and Exposures system. The Connections pane browses databases: the 2026.09 release added support for any database with an ODBC driver installed, alongside the earlier Databricks and Snowflake connections, with a Disconnect action that also closes the Data Explorers opened from that connection. Neither pane is needed on the day, though both become valuable in a project that lasts longer than a day.

2.9 Folders and the welcome page

Positron has no equivalent of the .Rproj file used by RStudio. The unit of work is the folder you open with File → Open Folder, and the working directory of the R session is that folder, which is all that an .Rproj file did for most people. An .Rproj file lying in a folder is ignored and harmless, which is why the workspace includes one for RStudio users. When Positron first opens, its welcome page shows an environment setup card that checks whether R and Python are ready to use and offers to help with anything it finds, and a walkthrough that tours the panes, the shortcuts, extensions and Git; both are new in the 2026.09 release and worth five minutes on a first launch.

2.10 The Command Palette and settings

Everything Positron can do is a command, and the Command Palette (Ctrl+Shift+P, or Cmd+Shift+P) is the search box for all of them: type a few letters of what you want, “select interpreter”, “restart”, “render”, and the command appears. It is the habit that makes the rest of the IDE learnable without memorising menus. Settings (Ctrl+comma) are searched the same way, and every setting is also a line in a JSON file for anyone who prefers to edit it directly. The settings that this course mentions are the RStudio keybindings switch, described in section 2.3, and the two that point Positron at an R installed in a folder that it does not search, positron.r.customRootFolders and positron.r.customBinaries, which are on the help page.

2.11 Extensions

Positron takes extensions from Open VSX, the open registry, through a mirror that Posit runs, rather than from the Microsoft marketplace, which is licensed for VS Code only. Most extensions written for VS Code are on both and install identically. For R nothing needs adding: the Quarto extension and the Air formatter, which tidies the layout of R code, come bundled, and R support is built into Positron itself, so the vscode-R extension that VS Code needs is unnecessary and does not work in Positron. Python support is built in as well.

2.12 Posit Assistant

Posit Assistant is the AI coding assistant built into Positron, the default assistant there since the 2026.07 release. It works on a bring-your-own-key basis: you connect it to a provider of your own, Anthropic, Amazon Bedrock, GitHub Copilot or OpenAI, with your key or account, and Posit does not collect the prompts or conversations that pass through an external provider. It differs from a chat tool in a browser tab in what it can read, which includes your loaded data, your plots and your console history, and it knows the version of R and the names and types of your variables, so a question about “this data frame” means the one in your session. It has slash commands, a Plan Mode for working out an approach before writing code, and file attachments by drag and drop. Posit states in its documentation that it provides no support for code that the assistant generates.

The course does not use it. It is described here because it is part of the tool, and because the help page suggests prompts for setup problems that it can answer. The questions about reproducibility that the course raises apply to generated code as much as to any other, and a suggestion that you accept from an assistant is a specification decision of your own, to be stated and justified in your report like every other one.

2.13 The current release

Positron 2026.09.0 is the release that this page describes, with the patch 2026.09.1-2 of 4 September 2026 on top of it, which fixed a problem with plots generated through Posit Assistant. The features of 2026.09.0 named above are the refreshed welcome page with its environment card and walkthrough, Import Data, ODBC connections and the Disconnect action, vulnerability scores in the Packages pane, and the reworked console. Smaller items include marimo notebook support in Quarto documents, environment modules loading in integrated terminals, and fixes across the Data Explorer and the Windows updater. The full list is on the release notes page.

3. RStudio

RStudio is the IDE that R users have worked in since 2011, and it is still maintained and free. Its window is four panes: the Source editor top-left, the Console below it, the Environment and History tabs top-right, and the Files, Plots, Packages, Help and Viewer tabs bottom-right. Work is organised in projects, each marked by an .Rproj file that, when opened, sets the working directory and restores the files you had open. The Environment pane lists the objects in the session, and clicking a data frame opens it in the data viewer, which can sort, filter and search the columns. The viewer has no summary statistics, cannot show a file that has not been read into R, and cannot keep a filter as code.

RStudio includes Quarto, with a render button, a visual editor and the same chunk controls, so a Quarto document renders with nothing else installed. Its Global Options dialog holds the settings, its Tools → Install Packages dialog and its Packages tab manage the library, and its Git tab does the same job as the Source Control pane in Positron. The release current on 8 September 2026 was 2026.08, named “Yellow Yarrow”, which runs on Windows 11, macOS 14 and later, and the current Ubuntu, Debian, Red Hat and Fedora releases. It was first published on 13 August 2026, and its second patch, 2026.08.2, on 25 August. Release 2026.09.0 followed on 10 September, and the release notes list what changed.

The table below, drawn from the comparison and migration pages published by Posit, sets out what changes when you move from RStudio to Positron:

In RStudio In Positron
An .Rproj project A folder, opened with File → Open Folder; .Rproj files are ignored
The Environment pane, with save and load of the workspace The Variables pane, with no saving or reloading of objects
One R version per session Any installed R 4.2 or later, several sessions at once
The data viewer: sort, filter, search The Data Explorer: sort, filter, a summary panel, files opened without loading, and Import Data
Global Options Settings, searched from the Command Palette
Addins and menus Commands, all reachable from the Command Palette
The RStudio keyboard shortcuts The same shortcuts, once the RStudio keybindings setting is on
Specialised panes for packages under development (Build and the like) Not present; the terminal and the R console do the work
The Tools → Import Dataset wizard Import Data, since 2026.09
Extensions: none An extensions marketplace, from Open VSX
R only, Python through reticulate R and Python as equals, each with its own console
Local only, or a Posit Workbench server Local, plus remote work over SSH

Nothing in that table forces a move, and someone who is productive in RStudio and needs it only for the five tasks of the course loses nothing by staying.

4. VS Code

VS Code is the general-purpose editor that Positron is built from, and many people who write in several languages already use it for everything. Its support for R comes from extensions that you add yourself. The R extension (REditorSupport.r) gives syntax highlighting, code completion, an object browser and the commands to send code to R, and it relies on the languageserver R package, which you install in R. The Quarto extension (quarto.quarto) gives .qmd files the same preview and chunk controls as in Positron, with the Quarto command-line tool installed separately. The largest practical difference is that R itself runs in a terminal, not a console. It works, and radian, an optional console for R in the terminal, makes it pleasant to use, but there is no session pane unless you add one, and plots need the httpgd package to appear in a viewer rather than a separate window. The R page of the VS Code documentation sets all of this out.

The release current on 8 September 2026 was 1.136, published on 2 September 2026, and its notes are mostly about the agent and chat features built around GitHub Copilot, which is the direction that the editor has been taking for two years. None of it bears on the course. The table sets out what changes between VS Code and Positron:

In VS Code In Positron
R in a terminal, through the R extension and languageserver An R console and R support built in; the R extension is not needed and does not work
Objects, data and plots through extensions or not at all The Variables pane, the Data Explorer and the Plots pane
Extensions from the Microsoft marketplace Extensions from Open VSX; most are on both
Quarto extension plus a separately installed Quarto The Quarto extension bundled; the command-line tool may or may not be
Copilot chat, with a GitHub account Posit Assistant, with a provider of your choice
Settings and keybindings The same files and the same shape; the migration page covers bringing them across

Someone who already works in VS Code and has R running there can do the whole course without moving. What Positron adds for them is the session view and the data pane, which are the two things that VS Code users most often build from extensions.

5. Choosing

If Then
You have never used any of the three Positron. It is the default for the course and the IDE on the shared screen, and its data pane shows more about the data in front of you than either of the other two can.
You have used RStudio for years and want to stay there Stay. Every task on the day runs in it, and the .Rproj file in the workspace opens it as a project.
You are an RStudio user curious about what has changed Positron with the RStudio keybindings on. The shortcuts stay the same, and the differences are the ones in the table above.
You write in several languages and already work in VS Code Stay, with the R and Quarto extensions in place, or open the same folder in Positron to compare.
Your machine is a managed laptop that blocks installations Whichever of the three your IT department will install, or the browser lab if none of them.

6. Try it

Work through these six steps in the workspace, in whichever IDE you chose. Together they use every pane that you will need on the day.

  1. Open the workspace folder (File → Open Folder in Positron and VS Code; replication-lab.Rproj in RStudio). The files appear in the side bar.
  2. Open R/check_setup.R and run it as a whole. Read the OK and FAIL lines in the console.
  3. Run euframes <- readr::read_csv("data/EUframes_cy.csv") in the console, then open the data frame in the data viewer: from the Variables pane or with View(euframes). In Positron, read the summary panel: how many rows, which columns have missing values, and what the distribution of the unemployment rate looks like.
  4. Filter the view to a single country and sort by year, and confirm that the object in the session is unchanged by running nrow(euframes) in the console.
  5. Draw one figure, plot(euframes$unemp, euframes$mcosmo), and find it in the plots pane; export it once, so you know where the button is.
  6. Open index.qmd and render it. Find the finished document in the viewer, and the file it wrote in the folder.

If any of the six fails, the help page has the likely causes, and the setup page the steps to repeat.

Sources

Everything above about Positron is taken from the documentation and release notes published by Posit as they stood on 8 September 2026: the release notes for 2026.09.0 and 2026.09.1-2, the download page for the system requirements, and the pages on R installations, layout, the Variables pane, the Data Explorer, the Packages pane, the Connections pane, extensions, keyboard shortcuts, Posit Assistant, and the three migration pages for RStudio users, the RStudio comparison and VS Code users. The release and platforms of RStudio come from the download page and the release notes; those of VS Code from the 1.136 release notes and the R documentation. The Quarto documentation pages on Positron, RStudio and VS Code cover the editor integrations. The features named here are the ones current at that date, and Positron and RStudio release a new version every month and VS Code every week, so a detail may have moved by the time you read this.