ViewR 2.0.0 introduces an entirely new, dependency-free htmlwidget
data explorer built from scratch in vanilla JavaScript (no React, no build
toolchain). It is portable: render it in the RStudio/Positron Viewer, inside
Shiny, in R Markdown / Quarto, or export it to a standalone HTML file.
viewdt(data, options = viewdt_options()) — opens the modern explorer.viewdt_options() — configure theme, labels, hidden columns, NA string,
visual features, and the viewer-cap safeguard.save_viewdt() — export any data frame to a portable, offline HTML grid.The legacy Shiny-gadget editor remains available as ViewR().
Excel-like editor (edit = TRUE): powered by rhandsontable, supports
inline cell editing, row addition via right-click context menu or the
Add Row button, and unlimited undo / redo.
Find & Replace tab: search for a literal string, regex pattern, or exact cell value across one or all columns. A live Preview diff table shows matched cells before changes are committed.
Variable Info tab: one-row-per-column summary of data type, N, missing count, missing %, unique count, min, max, and sample values.
R Code tab (generate_code = TRUE): live dplyr pipeline that
reflects all current filters, sorts, column selections, and
find-and-replace operations. Copy to clipboard button included.
Multi-condition Filters with AND / OR logic and eleven operators:
==, !=, >, >=, <, <=, contains, starts with,
ends with, is NA, is not NA.
Multi-column Sort: add as many ordered sort levels as needed, each independently ascending or descending.
Column visibility panel: show / hide any column; bulk All / None toggles.
Variable labels: automatically read from column "label" attributes
(e.g. from haven::read_spss()); displayed as hoverable tooltips on
column headers in the Data View table.
Twelve Bootstrap themes via shinythemes: "flatly", "cerulean",
"cosmo", "darkly", "lumen", "paper", "readable",
"sandstone", "simplex", "spacelab", "united", "yeti".
install_viewr_deps(): helper to detect and install all required
packages in one call.
Pipe-friendly: ViewR() accepts piped input and returns the working
data frame invisibly when the user clicks Done.
methods::as();
replaced with an explicit switch() over the original column class.R/ui.R, R/server.R, R/helpers.R,
R/code_gen.R).testthat (edition 3) test suite covering filter engine, sort
engine, find-and-replace, variable info, and code generation.vignettes/ViewR-intro.Rmd introduction vignette._pkgdown.yml for the package website.inst/sticker/.ViewR() stub.