Changelog
Source:NEWS.md
joyn 0.3.0
Breaking Changes
-
Minimum R version: Now requires R ≥ 4.2.0 (previously R ≥ 2.10.0) due to use of native pipe operator (
|>) introduced in R 4.1.0 and uses the pipe placeholder syntax added in R 4.2.0. Users on R 4.0.x must upgrade to use this version. -
Default verbosity:
possible_ids.verbosedefault changed fromTRUEtoFALSEto reduce console output by default.
New Features
-
Variable class validation: New internal function
check_var_class()validates that join (by) variables have supported classes (character, integer, numeric, factor, logical, Date, POSIXct, fs_path). Warns users when unsupported classes (e.g., list, complex, raw) are detected and suggests coercion. -
Variable filtering helper: New
filter_vars()function simplifies inclusion/exclusion of variables based on names or classes inpossible_ids()and related functions. -
Test data helper: New
make_test_data()function provides standardized test datasets to improve test maintainability.
Improvements
-
Zero-row input handling:
check_xy()now detects and reports when input tables have zero rows (previously would silently proceed). -
Enhanced
byexpression support: Improved handling ofbyexpressions (e.g.,"x == y"). Temporary keys are now created only when necessary, and original column names are preserved when possible, reducing unnecessary data.table modifications. -
CI/CD updates: GitHub Actions workflow upgraded from
upload-artifact@v3tov4for better compatibility. -
Dependencies: Added
gluepackage to Imports for improved string interpolation in messages.
Bug Fixes
-
Test suite improvements: Rewrote and expanded test coverage in
test-checks.Rto use helper data and explicit expectations. Added error tests for unsupportedbyvariable types and formats. -
Documentation updates: Added complete documentation for
check_var_class(),filter_vars(), and other internal helpers. Updatedman/possible_ids.Rdto reflect new default parameter values. - Code formatting: Minor formatting improvements throughout codebase for consistency.
joyn 0.2.4
CRAN release: 2024-12-13
Improve displaying messages. Now, they are clickable.
Improve algorithm to find variables that work as possible IDs see
possible_ids().Improve algorithm in
is_id()andfreq_table().
joyn 0.2.3
CRAN release: 2024-08-21
- Fix bug where the left join did not work when updating values and a full join was maintained.
joyn 0.2.2
CRAN release: 2024-07-10
- Remove unmasking functions as we realized that they are not necessary.
joyn 0.2.1 (Not in CRAN)
Add
anti_join()function.Add
unmask_joyn()function to unmaskjoynfunctions that maskdplyrequivalents.Add information about duplicated obs in
byvariable when match type is1rathern thanm.improve inefficiencies in deep copies with
m:mjoinsReplace
m:mjoins fromdata.table::merge.data.tabletocollapse::join. Thanks to @SebKrantz for the suggestion (#58).Add information about duplicated obs in
byvariable when match type is1rather thanm.Internal: improve storing of joyn messages.
Improve creation of reporting variable. Now, it is created in [collapse::join] rather than in
joynfunction. In addition, the reporting variable is created as factor to improve performance. Thanks to @SebKrantz for the suggestion (#58)
breaking changes
Now, by default,
joynwill not sort the data. This is to avoid unnecessary computational time that most of the time is not needed. If the user wants to sort the data, they can use thesortargument, which triggers the sorting mechanism ofcollapsepackage.report variable (named “.join” by default) is now a factor instead of character. Yet, users can still use character if they want with the
reporttype = "character".
joyn 0.2.0
CRAN release: 2024-03-29
-
joynhas gained two new authors: Zander Prinsloo and Rossana Tatulli.
Breaking changes
Function
joyn::merge()was replaced byjoyn::joyn(). This is now the main function of thejoynpackage.Arguments
allow.cartesian,yvars, andkeep_y_in_xhave been deprecated. The latter two have been replaced byy_vars_to_keepandkeep_common_vars, respectively. The new argument names bring more clarity about what they arguments do.
New features
New function
joyn::merge()works as a mask for thebase::merge()ordata.table::merge.data.table().joyn::merge()has the same features as the previous two, but includes the features ofjoyn::joyn().Messages style have been improved and categorized. See message vignette for more information.
New functions to mimic dplyr joins. The
joynvariants have all the features forjoyn::joyn()but lack some of the most advance features ofdplyrjoins likejoyn::join_by()
joyn 0.1.4
CRAN release: 2021-12-14
update_NAs now could be FALSE even if update_values is TRUE
Select rows-to-keep before transformation of updated values and NAs to avoid keeping rows from y that did not match in x but whose values got updated because
update_values = TRUEChange to data.table::merge.data.table syntax in all joins. It makes it easier to work with and consistent across different join types.
Remove previous lazy-loaded data.
joyn 0.1.2
- Add function
possible_ids()to identify what variables are suitable for uniquely identify the database.
joyn 0.1.1
Add function
is_id()to check whether the table is uniquely identified by key variablesAdd function
freq_table()as a substitute for janitor::tabyl. This makes it more convenient for users who do not have janitor installed.