datasetviewer 0.1.1
- Initial CRAN release.
dataset_viewer() renders a SAS Studio-style interactive
grid for a data frame, an artoo-conformed frame, or a file path read via
artoo::read_dataset(). The data is sent to the browser as
Parquet and queried in place with DuckDB-WASM, so filter, sort, and
scroll stay fast on large datasets without sampling rows.
- The shell provides a column-selection panel with char/num type icons
and a collapse chevron (its list can be sorted by original order, name,
or type and filtered by name to navigate wide datasets, without changing
the grid column order), a property pane (Label, Name, Length, Type,
Format), a names-versus-labels header toggle, and click-a-header to sort
(the first click selects the column, then clicks cycle ascending,
descending, unsorted) – Shift-click adds columns for a multi-column
sort, each shown with its direction and priority. A right-click menu
sorts per column (Sort Ascending/Descending add the column to the sort;
Clear Sorting removes just that column) and offers per-column filters,
copying a column or its header, and size-to-content, alongside a
free-text row filter and CSV export of the current view.
- Missing values display as a muted
NA in every column
(numeric, character, and date), keeping them distinct from a genuine
empty string and from the NaN floating-point value, which
renders as NaN. They can be filtered with the
COL is na / COL is not na free-text predicate
or the per-column “(Missing)” option in the Add Filter dialog; the
generated dplyr code uses is.na().
datasetviewerOutput() and
renderDatasetViewer() embed the widget in Shiny and publish
the current filter, sort, column selection, and view mode as
inputs.
- The “Show code” toolbar button emits the runnable, air-formatted
dplyr pipeline (filter, arrange, then select, with SQL-to-R
translation) that reproduces the current view.
- The DuckDB-WASM engine loads from a CDN by default and is fetched
into the package at install time when reachable, so a Shiny app can
serve it to browsers with no internet at runtime (offline / corporate
deployment). The install-time fetch honours
DATASETVIEWER_DUCKDB_DIR,
DATASETVIEWER_DUCKDB_URL,
DATASETVIEWER_DUCKDB_EXT_URL, and
DATASETVIEWER_DUCKDB_OFFLINE; the install never fails if
the engine cannot be fetched (it falls back to the CDN at runtime).
options(datasetviewer.use_local_engine = FALSE) forces
the CDN even when the engine is present locally, keeping self-contained
HTML documents small.