Environment

The Environment tab shows every variable in your R session at a glance: names, types, sizes, and value previews, all updated in real time.

Your variables, at a glance

Once you start creating variables in the Console or Editor, they show up here automatically. The list refreshes in real time, so you will see new variables appear right after you create them.

Each row shows the variable’s name, class (like data.frame or numeric), memory size, and a short preview of its contents.

How variables are organized

Variables are grouped by R type:

  • Data Frames: includes data.frame, tibble, and data.table objects
  • Matrices: matrix and array types
  • Lists: nested list structures
  • Functions: any custom functions you have defined
  • Values: everything else: vectors, scalars, strings, logicals, and so on

If you have added any variables to your watch list (more on that below), they appear at the very top in their own “Watched” section, regardless of type.

Inspecting a variable in detail

Tap any variable to open a detail sheet. What you see depends on the type.

Data frames show all columns with types and sample values, a preview of the first 10 rows, and an “Open in Data Frame Viewer” button for a full scrollable table.

Vectors and scalars show the full value (up to 15 digits of precision), or a summary and the first 20 elements for longer vectors.

Lists show the str() output and a preview of each element.

Functions show the signature and body.

Other objects, such as a model from lm(), a formula or an environment, are described with str() in a scrolling block.

Every detail view includes a Copy as R Code section; tap View Code for the dput() output, so you can recreate the variable from scratch or share it. The code is produced when you open it. For objects over 512 KB it isn’t, and the sheet suggests running dput() in the Console instead.

Variables with unusual names, such as `sales 2024`, work everywhere in the Environment; the code it shows you quotes them with backticks.

What you are seeing above: the Variable Details sheet adapts to the type of variable you tap.

  1. Data frame: every column with its type and sample values, plus a preview of the first rows
  2. Numeric vector: a summary and the first elements
  3. List: the str()-style structure and a preview of each element
  4. Function: the function’s signature (arguments) and its body

Column details

In the Data Frame Viewer, tap any column header for a column detail sheet:

  • Distribution chart: a histogram for numeric columns, a bar chart for categorical or logical columns.
  • Summary statistics (numeric): min, max, mean, and median.
  • Value counts (categorical): the top values and their frequencies.
  • NA count: shown prominently if the column contains missing values.

Filtering and sorting

The column detail sheet also lets you filter and sort directly:

  • Numeric columns: set a min/max range to filter rows. Negative numbers and your locale’s decimal separator work; Apply Filter stays disabled until the range is valid
  • Categorical columns: search values and check/uncheck which ones to keep, with “Select All” and “Deselect All” buttons
  • Logical columns: toggle which values to show (TRUE, FALSE, NA)
  • Sort controls: tap ascending or descending to reorder the entire data frame by that column

Tap Apply Filter to update the Data Frame Viewer with your selections. Filters and sorts are applied together, making it easy to zero in on the rows that matter.

R does the filtering, sorting and searching, a page of 100 rows at a time, so even large data frames open quickly. Because the sort is R’s own order(), a text column that holds numbers sorts as text: “10” comes before “9”. Convert the column with as.numeric() if you want numeric order. A “Loading rows” indicator appears if R takes a moment, and if a page fails to load you can retry it.

The Data Frame Viewer

  • Row names: a data frame with row names of its own shows them in the first column, so mtcars lists its cars. Otherwise the first column shows each row’s number in the data frame, which stays with the row when you filter or sort.
  • Search: the search box finds rows whose row name or any cell’s text contains what you type, ignoring case. Missing values match “NA”, as the grid shows them.
  • Changes in R: if the data frame’s number of rows or columns changes in R while it is open, the viewer reloads with your filters and tells you why.
  • Export: tap the share button. Export as CSV saves the whole data frame into the current project’s folder and opens the share sheet (Save to Files, AirDrop, and so on). With a filter or sort applied and the search box empty, Export Current View as CSV saves only the rows shown, in their order. Copy View as R Code copies the R code that selects the same rows the grid shows.

With VoiceOver, each column header reads its name, type, sort and filter state, each cell names its row and column (“Mazda RX4, mpg, 21”), and cells offer a Copy Value action.

Comparing data frames

Open the Environment … menu and choose Compare Data Frames. Pick a first and a second data frame (if there are exactly two, they are already selected), then tap Compare.

Rows are compared by position, up to the first 1,000 rows of each, and a caption says how many were compared. Columns are matched by name. Changed values show the new value over the old one struck through. Rows and columns that exist in only one data frame are marked added or removed, and a column whose type changed is flagged. Changes only hides the unchanged rows. With VoiceOver, each cell reads its row, column and what changed, for example “changed from q to Q”.

Quick actions with long press

Long-press any variable (or right-click on iPad) for a context menu of quick actions:

  • Summary: runs summary() and shows the result in a popup
  • Structure: runs str() so you can see the internal structure
  • Head: shows head() output (the first few rows or elements)
  • Print: runs print() for the full output
  • Plot: generates a quick plot of the variable (the plot appears in the Plots tab)

Watching variables

Add variables to your watch list to pin them at the top of the Environment. Useful for running totals or data frames you are building incrementally.

To watch a variable, swipe right on it and tap Watch. You will see a small star badge appear next to the name. To stop watching, swipe right again and tap Unwatch, or use the long-press menu.

You can clear the entire watch list at once from the menu (the ... button in the toolbar).

Searching and filtering

Use the search bar to filter variables by name. The list narrows as you type.

Deleting variables

Swipe left on any variable and tap Delete to remove it (runs rm() behind the scenes). webRios asks first, and tells you if the delete fails.

To remove everything, tap the menu (...) and choose Clear Environment. This clears .GlobalEnv entirely. A confirmation prompt appears first.

The Packages tab

The segmented control at the top also has a Packages tab showing your installed R packages. See the Packages guide for details.

Pull down on the list to refresh manually, or tap Refresh in the menu.