|>) introduced in R 4.1.0 and uses the pipe placeholdersyntax added in R 4.2.0. Users on R 4.0.x must upgrade to use thisversion.possible_ids.verbose default changed fromTRUEtoFALSE to reduce console output by default.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.filter_vars() function simplifies inclusion/exclusion ofvariables based on names or classes inpossible_ids() andrelated functions.make_test_data()function provides standardized test datasets to improve testmaintainability.check_xy()now detects and reports when input tables have zero rows (previouslywould silently proceed).by expression support:Improved handling ofby expressions (e.g.,"x == y"). Temporary keys are now created only whennecessary, and original column names are preserved when possible,reducing unnecessary data.table modifications.upload-artifact@v3 tov4 for bettercompatibility.glue package toImports for improved string interpolation in messages.test-checks.R to use helper data and explicitexpectations. Added error tests for unsupportedby variabletypes and formats.check_var_class(),filter_vars(), andother internal helpers. Updatedman/possible_ids.Rd toreflect new default parameter values.Improve displaying messages. Now, they are clickable.
Improve algorithm to find variables that work as possible IDs seepossible_ids().
Improve algorithm inis_id() andfreq_table().
Addanti_join() function.
Addunmask_joyn() function to unmaskjoyn functions that maskdplyrequivalents.
Add information about duplicated obs inby variablewhen match type is1 rathern thanm.
improve inefficiencies in deep copies withm:mjoins
Replacem:m joins fromdata.table::merge.data.table tocollapse::join. Thanks to
Add information about duplicated obs inby variablewhen match type is1 rather thanm.
Internal: improve storing of joyn messages.
Improve creation of reporting variable. Now, it is created in[collapse::join] rather than injoyn function. In addition,the reporting variable is created as factor to improve performance.Thanks to
Now, by default,joyn will not sort the data. Thisis to avoid unnecessary computational time that most of the time is notneeded. If the user wants to sort the data, they can use thesort argument, which triggers the sorting mechanism ofcollapse package.
report variable (named “.join” by default) is now a factorinstead of character. Yet, users can still use character if they wantwith thereporttype = "character".
joyn has gained two new authors: Zander Prinsloo andRossana Tatulli.Functionjoyn::merge() was replaced byjoyn::joyn(). This is now the main function of thejoyn package.
Argumentsallow.cartesian,yvars, andkeep_y_in_x have been deprecated. The latter two have beenreplaced byy_vars_to_keep andkeep_common_vars, respectively. The new argument namesbring more clarity about what they arguments do.
New functionjoyn::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. Seemessagevignette for more information.
New functions to mimicdplyrjoins. Thejoyn variants have all the features forjoyn::joyn() but lack some of the most advance features ofdplyr joins likejoyn::join_by()
update_NAs now could be FALSE even if update_values isTRUE
Select rows-to-keep before transformation of updated values andNAs to avoid keeping rows from y that did not match in x but whosevalues got updated becauseupdate_values = TRUE
Solve issues #1 and #19
Change to data.table::merge.data.table syntax in all joins. Itmakes it easier to work with and consistent across different jointypes.
Remove previous lazy-loaded data.
possible_ids() to identify what variablesare suitable for uniquely identify the database.Add functionis_id() to check whether the table isuniquely identified by key variables
Add functionfreq_table() as a substitute forjanitor::tabyl. This makes it more convenient for users who do not havejanitor installed.
Fix bug onby argument when using “=” or “==”.
First Public release