Skip to content

Releases: markfairbanks/tidytable

v0.11.2

11 Dec 10:39
Compare
Choose a tag to compare

This is a minor release with mostly internal improvements.

Bug fixes

  • Empty dt() works with no warning, #824

v0.11.1

18 Jul 14:20
Compare
Choose a tag to compare

Functionality improvements

  • pmap() now preserves names (#809)
  • Package developers no longer need to define .datatable.aware = TRUE when
    using tidytable in their package (#269)

Bug fixes

  • Attempting to rename columns using group_by() now leads to an error (#799)
  • pmap() family works with data frame inputs (#803)
  • filter() properly handles when comparing to NA when .by is used (#812)
  • paged.print has been removed since it was breaking console printing (#810)

v0.10.1

20 Apr 15:35
Compare
Choose a tag to compare

New functions

  • reframe()

Bug fixes

  • case_when(): .default is used when calculating a common ptype (#751)
  • pivot_wider(): Works correctly with dates (#759)

Functions with notable speed improvements

  • case_match(): When comparing input vector to a length 1 literal

v0.10.0

10 Mar 14:40
Compare
Choose a tag to compare

Deprecations

  • verb.() functions are now deprecated (e.g. mutate.()). Users should now use
    the verb() versions of functions.

New functions

  • tribble()

Functionality improvements

  • nest(): Gains .by and .key args
  • tidytable(): Auto-names unnamed inputs
  • slice_*() family: by arg added to match dplyr semantics.
    .by can still be called by the user instead of by.
  • dt(): Can use let() to add columns even on older versions of data.table

Bug fixes

  • expand_grid(): Can use "unique" or "sorted" as column names (#718)

Breaking changes

  • slice_head()/_tail(): .by arg must be explicitly named when slicing by group

Functions with notable speed improvements

  • mutate(): When overwriting existing columns on data frames with a high
    number of columns (>1000)

v0.9.2

13 Jan 23:22
Compare
Choose a tag to compare

New functions

  • cross_join()
  • group_cols()
  • map_vec()
  • pick()
  • separate_longer_delim()
  • separate_wider_delim()
  • separate_wider_regex()

Functionality improvements

  • separate(): Can now handle when too many or too few new names are
    specified in into arg (#666)
  • unnest_longer(): Gains keep_empty arg

Bug fixes

  • separate(): Can overwrite separated column without removal (#680)
  • na_if(): Properly replaces NAs when y is a vector (#689)
  • across(): Anonymous functions are properly translated (#699)
  • pivot_wider(): names_sort = FALSE works (#705)

Deprecations

  • Using by = character() in joins is now deprecated. Users should instead use cross_join().

v0.9.1

25 Oct 19:05
2fde031
Compare
Choose a tag to compare

New functions

  • nest_join()
  • Ranking functions:
    • min_rank()
    • dense_rank()
    • percent_rank()
    • cume_dist()

Functionality improvements

  • %in% falls back to base::'%in%' when input types aren't compatible
    with vec_in() (@krterberg, #632)
  • relocate(): Can rename columns that are moved
  • Joins: Can now do cross joins by specifying by = character()
  • group_by(): Gains .add argument
  • ungroup(): Gains ... arguments
  • Printing of grouped tidytables now shows grouping variables

Bug fixes

  • row_number(): Works correctly on 0-row data frame when overwriting existing column (#639)
  • slice_head()/slice_tail(): Properly slice on 0-row data frame (#642)

Functions with notable speed improvements

  • fill()

v0.9.0

23 Sep 18:36
cae920b
Compare
Choose a tag to compare

Dotless functions!

  • tidytable now exports dotless versions of all functions (e.g. arrange()/mutate()/etc.).
    • verb.() syntax is still available to users for backwards compatibility.
    • This will also allow users to use both tidytable and dplyr by simply loading
      dplyr after tidytable, as the verb.() functions won't be overwritten by dplyr.

New functions

  • dplyr-style interface to grouping
    • group_by()/ungroup()
    • group_vars()
    • is_grouped_df()
    • rowwise()
  • add_tally()/tally()
  • case_match()

Functionality improvements

  • summarize(): Gains .unpack argument
  • pivot_longer(): Can pass a single ptype or function to
    values_ptypes/values_transform/names_ptypes/names_transform args.
  • unnest_longer()/unnest_wider(): Can pass a single ptype or function to
    ptype/transform args.

Bug fixes

  • tidytable::'%in%' dispatches to base::'%in%' when comparing with a list (#563)
  • pivot_wider(): Works with column names with spaces (#569)
  • pivot_wider(): names_glue="{.value}_{somecolumn}" assigns column names in
    correct order (@Darxor, #579)
  • left_join(): Works when y matching columns in by is a non matching column of x (#625)

v0.8.1

17 Aug 23:44
Compare
Choose a tag to compare

New Functions

  • consecutive_id.()
  • if_else.()
    • Note: Alternate syntax ifelse.() (introduced in v0.4.0) will remain in the package
  • %in%

Functionality improvements

  • arrange.(): Can use .env inside arrange expressions
  • case_when.(): Gains .default/.ptype/.size args
  • coalesce.(): Gains .ptype/.size args
  • relocate.(): Now properly handles multiple columns selected in .before or .after
  • slice_min.()/slice_max.(): Gain with_ties argument

Bug Fixes

  • Nested calls to across.() are handled properly (#505)
  • across.(): Can namespace functions in .fns arg (#511)
  • as_tidytable(): Can keep row names when converting a matrix (#527)
  • unnest.(): Handles empty data frames (@roboton, #530)
  • nth.(): Extracts list elements (#534)
  • arrange.(): Properly sorts NAs (#541)

Deprecations

  • arrange_across./mutate_across./summarize_across. are now defunct. They have been
    deprecated with warnings since v0.6.4 (Jul 2021). Users must now use across.() inside
    arrange.()/mutate.()/summarize.().

v0.8.0

11 Jun 13:51
Compare
Choose a tag to compare

New functions

  • na_if.()

Functionality improvements

  • expand_grid.(): Works with data frame inputs
  • first.()/last.()/nth.(): Gain na_rm arg
  • mutate_rowwise.(): Gains .keep, .before, and .after args
  • tidytable(): Auto-unpacks unnamed data frame inputs

Breaking changes

  • count.(): Default name is now n instead of N to match dplyr semantics

Bug fixes

  • bind_cols.(): Correctly handles lists (#446)

Functions with notable speed improvements

  • arrange.()
  • case.(): Faster when conditions evaluate to NA
  • group_split.()
  • left_join.(): Faster when keep = FALSE (the default)
  • select.()
  • uncount.()

Other notes

  • tidytable no longer directly depends on lifecycle

v0.7.2

28 Apr 19:01
Compare
Choose a tag to compare

New functions

  • pmap.()

Functionality improvements

  • summarize.(): Now sorts by the grouping variables when .by is used.
  • dt(): Experimental support for tidy evaluation
  • as_tidytable(): Now defaults to .name_repair = "unique" to relax restrictions on creating new tidytables

Functions with notable speed improvements

  • dt(): Faster when adding new columns or updating existing columns
  • as_tidytable(): Faster when converting data.frame or list objects to a tidytable
  • get_dummies.()

Bug fixes

  • across.(): .cols arg can find environment variables in custom functions (#389)
  • Joins: Duplicate columns are treated properly when keep = FALSE (#397)
  • Can use anonymous functions inside map functions inside mutate.() (#402)