NEWS
DataEditR 1.0.0 (2026-03-15)
Major New Features
- Add change tracking with the new
track parameter in data_edit() and
dataEditServer(). Set track = TRUE to highlight edited and added cells
with a blue border, or pass a CSS color string (e.g. track = "red") for a
custom highlight colour. Uses Handsontable's afterRenderer hook and
name-based cell matching so that inserted rows or columns no longer cause all
subsequent cells to appear changed.
- Add tidyverse-style code generation via the new
data_code() function and
updated code argument in data_edit(). Instead of dput() output, the
editor now generates human-readable dplyr pipe code using rename(),
select(), mutate(), slice(), and tibble::add_row() to replicate
column renames, additions/removals, cell value changes, and row
additions/removals. Row names (e.g. those in mtcars) are preserved via
tibble::rownames_to_column() / tibble::column_to_rownames().
Automatic Data Synchronisation
- Remove the sync button in favour of automatic data synchronisation. Changes
made to filtered or selected data subsets are now automatically merged back
into the master copy of the data as they are made.
- Fix bug where column indices were not passed to the sync logic
(
values$cols instead of values$columns).
- Add
auto parameter to dataSyncServer() to allow automatic synchronisation
when used as a standalone module.
- Improve performance by preventing unnecessary table re-renders after data
synchronisation. Filter and select modules no longer reset on every sync.
Bug Fixes
- Fix factor column crash: passing a data frame with factor columns no longer
causes an error in
hot_context_menu. Factor columns are now converted to
character before rendering and converted back on output via col_factor.
- Fix
dataFilter "not between" and "not contain" filter logic which
incorrectly used ncol() instead of nrow(), causing wrong row indices to
be returned.
- Fix
dataFilter multi-filter intersection which used duplicated() and
missed rows matching all filters when no duplicates existed. Now uses
table() to correctly compute the intersection.
- Fix stale
input$x race condition in dataEditServer() when switching
reactive data. A data_loading flag now prevents the old table's
input$x from overwriting values$x before the new data has rendered.
DataEditR 0.1.7
- Remove the sync button in favour of automatic data synchronisation. Changes
made to filtered or selected data subsets are now automatically merged back
into the master copy of the data as they are made.
- Fix bug where column indices were not passed to the sync logic
(
values$cols instead of values$columns).
- Add
auto parameter to dataSyncServer() to allow automatic synchronisation
when used as a standalone module.
- Improve performance by preventing unnecessary table re-renders after data
synchronisation. Filter and select modules no longer reset on every sync.
DataEditR 0.1.6
- Update FontAwesome icon names.
DataEditR 0.1.5 (2022-03-08)
- Add
cancel argument to data_edit() to allow control over return value when the data editor is deliberately closed by the user, set to the original input dat by default.
- Make the switch to
bslib for more flexibility in setting custom themes data_edit(). Users can now supply a bs_theme object to the theme argument to fully customise the appearance of the data_edit() UI.
- Fix handling of numeric row names to ensure maintenance of row indices relative to the master copy.
- Improved handling of highlighted
data_edit() calls within RStudio.
DataEditR 0.1.4 (2021-12-10)
- Fix header location on scroll.
- Make sure column names are retained when loading empty datasets within
dataInput.
- Add checks for empty data within
dataInput and dataEdit to ensure that the supplied data always contains as least a single row and column.
- Add support for writing data to
googlesheets by calling write_fun as the application closes.
- Fix
data_edit() to ensure that we don't search for data through RStudio addin if RStudio is not in use.
DataEditR 0.1.3 (2021-07-09)
- Display hints when user hovers cursor over buttons.
- Make sure R objects containing
. can be loaded into the data editor.
- Turn on highlighting for columns and rows.
- Add
dataSync module to handle synchronisation of an edited data subset with the complete dataset.
- Improved support for tibbles.
- Fix
dataFilter to ensure the logic and levels are always updated when the column selection changes.
DataEditR 0.1.2 (2021-05-21)
data_edit() can now export the code required to generate the final edited version of the data to an R script.
- Update vignette and website to demonstrate usage of
code argument.
- Make sure to search the correct environment when creating templates or reading files.
DataEditR 0.1.1 (2021-05-10)
- Ensure
dataInput searches for data outside data_edit().
- Prevent loading of highlighted data object in RStudio when data has been supplied to
data_edit() directly.
- Allow saving by
write_fun whenever save_as is supplied.
DataEditR 0.1.0
- Make the switch to GitHub Actions for continuous integration.
- Update
dataSelect and dataFilter examples now that the return values are lists instead of reactive expressions.
DataEditR 0.0.9 (2020-12-12)
- Minor improvements to ensure that the original data is retained when new columns are added or renamed. Requires installation of
rhandsontable from install_github("DillonHammill/rhandsontable").
DataEditR 0.0.8
- Add
dataSelect and dataFilter modules to filter data,
- Add a
Sync button to update the entire dataset with changes made to a subset. Data is still exported as a whole but a new button could be added in the future to export the subsetted data.
- Add
cut button to allow return of subsetted data upon closing the application with the Done button.
DataEditR 0.0.7
- Create
dataInput, dataEdit and dataOutput modules.
- Create RStudio addin to interactively edit data.
- Update user interface to allow interactive file selection or input of R data objects.
- Add new viewer options to open the data editor in a
dialog box, browser or RStudio viewer pane. This can be controlled through the viewer argument and has been set to use a dialog box by default. Additional arguments viewer_height and viewer_width have been added to allow control over the dimensions of dialog boxes.
- Add a cancel button in top left to return data unchanged.
- Add new
hide argument to optionally display the dataInput and dataOutput modules. This functionality requires the shinyjs package. The hide argument allows users to maximize the space available to display the data and also prevent users from interacting with these modules. It is still possible to save data to file when dataOutput module is not visible, by simply supplying the file name to the save_as argument of data_edit().
- Improve handling of row names with the
dataEdit module.
- Add helper function to handle generation of templates based on inputs to
data_edit() to make it easier to create data.frames from scratch. The default template size has been increased to be a 10 x 10 grid.
- Add
logo_side argument to control whether the logo should be placed on the left or right of the title.
- Add new
code argument to data_edit() to print the code required to create the edited data to the console.
DataEditR 0.0.6
- Add ability to pass column names to
data_edit() to construct a template data.frame with pre-defined column names.
DataEditR 0.0.5 (2020-08-12)
- Fix row indices when rows are added or removed.
- Improve handling of duplicate row indices in case of accidental editing.
DataEditR 0.0.4
- Add
col_readonly argument to prevent users from editing values or column names of certain columns.
- Prevent error when column is clicked but not edited.
DataEditR 0.0.3
- Add
col_names argument to allow control over which column names can be edited by the user.
DataEditR 0.0.2
- Fixes for CRAN submission.
DataEditR 0.0.1
- Add
data_edit() to allow interactive data viewing, entry and editing.