poorman 0.2.4 Unreleased

Eighth CRAN release.

This update has added the following new features:

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.

poorman 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.


In addition there have been lots of improvements to documentation and many, many more tests added.

poorman 0.2.2 2020-10-11

Sixth CRAN release.

This update has added the following new features:

Performance upgrades and code improvements:

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).

poorman 0.2.1 2020-07-01

Fifth CRAN release.

The update has added the following new features:

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}.

poorman 0.2.0 2020-05-10

Fourth CRAN release.

This update has added the following new features:

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:

poorman 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.

poorman 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

poorman 0.1.9 2020-04-01

First CRAN release

poorman 0.1.8 Unreleased

This update adds relocate() and consolidates the selection method for select(), rename() and relocate() using select_positions().

poorman 0.1.7 Unreleased

This update adds semi_join() and anti_join().

poorman 0.1.6 Unreleased

This update adds inner_join(), left_join(), right_join() and full_join().

poorman 0.1.5 Unreleased

This update adds a full set of tests for the functions available in v0.1.5.

poorman 0.1.4 Unreleased

This update adds a copy of the pipe (%>%).

poorman 0.1.3 Unreleased

This update adds summarise().

poorman 0.1.2 Unreleased

This update adds rename().

poorman 0.1.1 Unreleased

This update includes group_by() and ungroup() operations.

poorman 0.1.0 Unreleased

This initial version includes the select(), pull(), arrange(), filter(), slice(), mutate() and transmute() functions. See the blog post for more details.