viewdt() data explorer widgetViewR 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.