Changes in version 0.2.7 (2023-10-30) Eleventh CRAN release. This release: - Adds a new function fill() that mimics tidyr::fill() (#113, @etiennebacher). - Includes various performance improvements for grouped operations, pivot_wider() and pivot_longer() (@etiennebacher). - Fixes CRAN issues. Changes in version 0.2.6 (2022-08-17) Tenth CRAN release. This update adds the following features: - Initial versions of pivot_longer() and pivot_wider() have been added (#101, @etiennebacher). - The .names argument in across() now accepts {.col} and {.fn} to automatically name new columns (#100, @etiennebacher). - New function lst() to reproduce the outputs of tibble::lst(). It enables the creation of lists where elements are build sequentially (i.e depend on the previous ones) and are self-named (i.e the expression is used if no name is given) (#108). The following fixes were also implemented: - arrange() now works for descending character vectors (#99, @etiennebacher). - arrange() now resets row names when they are numeric (#102, @etiennebacher). - distinct() now resets row names when they are numeric (#106, @etiennebacher). The CICD pipeline was also fixed such that users can now tests pull requests. The documentation is now built using HTML5. Changes in version 0.2.5 (2021-03-28) Ninth CRAN release. This update has added the following new features: - summarise() can now revise grouping structures with the .groups argument (#57). - group_by() can now drop groups formed by factor levels that don't appear in the data with the .drop parameter (#63). - New cumulative functions have been added: cumall(), cumany() and cummean() (#64). - Additional tools for working with rownames have been added: has_rownames(), remove_rownames(), column_to_rownames(), rowid_to_column() (#66). - filter() gains the .preserve parameters (#81). - if_any() and if_all() were added (#80). The following fixes were also implemented: - mutate() now successfully evaluates functions defined in the scope of a parent function (#68). - select_positions() now works if passed a combination of positive and negative values (#71). - transmute() now keeps unnamed columns that it creates (#72). The following refactorisations took place: - When grouping data with group_by(), it will now create an object of class grouped_df and not grouped_data which keeps it consistent with the {dplyr} method name (#70). This should hopefully make transitioning packages from {dplyr} to {poorman} a little easier. Changes in version 0.2.4 (2020-11-27) Eighth CRAN release. This update has added the following new features: - group_by() can now create new columns, grouping by the result (#58). - with_groups() (#61). - nth() (#62). - mutate() can now relocate resulting mutations (#59). - mutate() can now keep all, used, unused or none of the resulting mutations (#60). - across() can now accept lambda style functions (#52). - Columns created by summarise() are now immediately available (#20). - cur_column() (#52). The following fixes were also implemented: - across() can now accept function names as characters (#56) - thanks @Eyayaw for pointing this out. - An empty summarise() will now correctly return an empty data.frame (#55). Other general refactorisations and improvements of note: - group_by() is now an S3 generic. - .default() methods are now .data.frame() methods. - get_groups() has been removed in favour of group_vars(). - set_groups() has been replaced with groups_set() for API consistency. Changes in version 0.2.3 (2020-11-12) Seventh CRAN release. This update has added the following new features: - across() (#37). - na_matches and keep parameters have been added to mutate joins. - list columns can now be mutated. - Added the missing ability to use & in poor-select. Fixes: - Use of variables in relocate(). In addition there have been lots of improvements to documentation and many, many more tests added. Changes in version 0.2.2 (2020-10-11) Sixth CRAN release. This update has added the following new features: - rename_with() - group_cols() (#42) - cur_data_all() - nest_by() (#44) - case_when() (#23) - bind_cols() (#32) - bind_rows() (#33) - unite() Performance upgrades and code improvements: - pull() is now much faster thanks to @markfairbanks. - %>% now allows you to pipe into a .; my thanks go to @moodymudskipper. The following bugs have been squashed: - Filter joins will no longer reduce to vectors thanks to @msberends. - contains() no longer returns lists. - relocate() can now use "tidy select" style column selections. New documentation components have been added: - An FAQ vignette has been added (#31). - A {pkgdown} website has been added (#30). Changes in version 0.2.1 (2020-07-01) Fifth CRAN release. The update has added the following new features: - distinct() (#17) - slice_head(), slice_tail(), slice_min(), slice_max(), slice_sample() (#22) - where() (#27) - coalesce() (#28) - group_split(), group_keys() (#29) - na_if() (#34) - recode() (#35) - near() (#36) - replace_na() (#38) - group_data(), group_indices(), group_vars(), group_rows(), group_size(), n_groups(), groups() (#39) - glimpse() (#40) - cur_data(), cur_group(), cur_group_id(), cur_group_rows() (#41) There have also been a lot of refactoring for the internals of the package, particularly focusing on context awareness which allows for quite a few of these features (#40, #41) and grouped operations should now be more consistent. This update of course comes with a host of bug fixes including the renaming of multiple columns when using {poorman}'s version of {tidyselect}. Changes in version 0.2.0 (2020-05-10) Fourth CRAN release. This update has added the following new features: - if_else() (#11) - between() (#12) - lead() and lag() (#13) - n_distinct() (#16) - window rank functions: cume_dist(), dense_rank(), min_rank(), ntile(), percent_rank(), row_number() (#18) My thanks go to @msberends for their help on these features! This update also refactors a lot of the code, hence the minor version bump. This includes: - More support for "tidyselect" features such as !, :, -, c() and () - Removal of eval(parse(text = ...) - Rework of grouped summaries Finally, 0.2.0 includes many bug fixes: - Joins now maintain their original order (#10) - group_by() + mutate() now preserve row order (#14) - Quote names are allowed in pull() (#15) Changes in version 0.1.11 (2020-04-22) Third CRAN release. This update adds the functions count(), tally(), add_count() and add_tally(). In order to achieve these, the functions n() and desc() have also been added. In addition, group_by() can now add additional groups to an already grouped data.frame. Changes in version 0.1.10 (2020-04-13) Second CRAN release. This update adds selection helper functions. See ?select_helpers for more information. The following bugs have been fixed: - mutate() column creations are immediately available, e.g. mtcars %>% mutate(mpg2 = mpg * 2, mpg4 = mpg2 * 2) will create columns named mpg2 and mpg4 - group_by() groups now persist in selections, e.g. mtcars %>% group_by(am) %>% select(mpg) will return am and mpg columns - slice() now duplicates rows, e.g. mtcars %>% slice(2, 2, 2) will return row 2 three times - summarize() is now exported Changes in version 0.1.9 (2020-04-01) First CRAN release Changes in version 0.1.8 This update adds relocate() and consolidates the selection method for select(), rename() and relocate() using select_positions(). Changes in version 0.1.7 This update adds semi_join() and anti_join(). Changes in version 0.1.6 This update adds inner_join(), left_join(), right_join() and full_join(). Changes in version 0.1.5 This update adds a full set of tests for the functions available in v0.1.5. Changes in version 0.1.4 This update adds a copy of the pipe (%>%). Changes in version 0.1.3 This update adds summarise(). Changes in version 0.1.2 This update adds rename(). Changes in version 0.1.1 This update includes group_by() and ungroup() operations. Changes in version 0.1.0 This initial version includes the select(), pull(), arrange(), filter(), slice(), mutate() and transmute() functions. See the blog post for more details.