dt() works with no warning, #824pmap() now preserves names (#809).datatable.aware = TRUE when using tidytable
in their package (#269)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)distinct() now works on data frames with list columns
(#773)pivot_wider(): Gains unused_fn argument
(#698)verb.() functions have been removedcount() has a more helpful error message when
pick() is used (#778)unnest(keep_empty = TRUE) preserves vectors of length 0
(#783)distinct()reframe()case_when(): .default is used when
calculating a common ptype (#751)pivot_wider(): Works correctly with dates (#759)case_match(): When comparing input vector to a length 1
literalverb.() functions are now deprecated
(e.g. mutate.()). Users should now use the
verb() versions of functions.tribble()nest(): Gains .by and .key
argstidytable(): Auto-names unnamed inputsslice_*() 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.tableexpand_grid(): Can use “unique” or “sorted” as column
names (#718)slice_head()/_tail(): .by arg
must be explicitly named when slicing by groupmutate(): When overwriting existing columns on data
frames with a high number of columns (>1000)cross_join()group_cols()map_vec()pick()separate_longer_delim()separate_wider_delim()separate_wider_regex()separate(): Can now handle when too many or too few new
names are specified in into arg (#666)unnest_longer(): Gains keep_empty argseparate(): 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)by = character() in joins is now deprecated.
Users should instead use cross_join().nest_join()min_rank()dense_rank()percent_rank()cume_dist()%in% falls back to base::'%in%' when input
types aren’t compatible with vec_in() (@krterberg, #632)relocate(): Can rename columns that are movedby = character()group_by(): Gains .add argumentungroup(): Gains ... argumentsrow_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)fill()tidytable now exports dotless versions of all functions
(e.g. arrange()/mutate()/etc.).verb.() syntax is still available to users for
backwards compatibility.
tidytable and dplyr by
simply loading dplyr after tidytable,
as the verb.() functions won’t be overwritten by
dplyr.dplyr-style interface to grouping
group_by()/ungroup()group_vars()is_grouped_df()rowwise()add_tally()/tally()case_match()summarize(): Gains .unpack argumentpivot_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.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)consecutive_id.()if_else.()
ifelse.() (introduced in v0.4.0)
will remain in the package%in%arrange.(): Can use .env inside arrange
expressionscase_when.(): Gains
.default/.ptype/.size argscoalesce.(): Gains
.ptype/.size argsrelocate.(): Now properly handles multiple columns
selected in .before or .afterslice_min.()/slice_max.(): Gain
with_ties argumentacross.() 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)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.().na_if.()expand_grid.(): Works with data frame inputsfirst.()/last.()/nth.(): Gain
na_rm argmutate_rowwise.(): Gains .keep,
.before, and .after argstidytable(): Auto-unpacks unnamed data frame
inputscount.(): Default name is now n instead of
N to match dplyr semanticsbind_cols.(): Correctly handles lists (#446)arrange.()case_when.(): Faster when conditions evaluate to
NAgroup_split.()left_join.(): Faster when keep = FALSE
(the default)select.()uncount.()tidytable no longer directly depends on
lifecyclepmap.()summarize.(): Now sorts by the grouping variables when
.by is used.dt(): Experimental support for tidy evaluationas_tidytable(): Now defaults to
.name_repair = "unique" to relax restrictions on creating
new tidytablesdt(): Faster when adding new columns or updating
existing columnsas_tidytable(): Faster when converting
data.frame or list objects to a tidytableget_dummies.()across.(): .cols arg can find environment
variables in custom functions (#389)keep = FALSE (#397)map functions inside
mutate.() (#402)add_count.()cur_column.()cur_data.()unite.(): New column is always placed before the first
united column in the data frame, regardless of order provided..data pronoun inside desc() in
arrange.() (#371)left/right/inner/full
joins gain suffix and keep args (#354)rename.(): Can now rename columns by position
(#361)unite.(): The new column is placed before united
columns to match tidyr behaviornew_tidytable().data and .env pronouns now work in
tidytable functionsacross.(): Works inside of a named
mutate.(). Useful with
rowSums/rowMeans (#346)first.()/last.(): Gain a
default argmutate.(): Can use stringr::str_glue()
without specifying .envirreplace_na.(): Checks that replace arg
only uses columns that exist in the data framenth.()mutate.(): Can assign to the same column when
.by = character(0) (#332)between() is now auto-translated to
between.() when used inside tidytable
functions%notin% now uses %chin% on character
vectorsacross.(): Can pass extra arguments to a list of
functions (#319)fread.()fwrite.()unnest_longer.()unnest_wider.()bind_rows.()/bind_cols.()
!!!mutate.(): Can use glue::glue() without
specifying .envirpull.(): Added a name argumentseparate.(): Can omit output columns by using
NA in intotidytable(): Can splice quosuresunnest.(): Added keep_empty argacross.() in v0.6.1
arrange_across.()mutate_across.()summarize_across.()enframe.()first.()last.()bind_cols, bind_rows,
group_split, or joins.complete.(): Added a .by argumentexpand.(): Added a .by argumentmutate.(): Auto-names unnamed inputstransmute.(): Auto-names unnamed inputsexpand.() with nesting.()
cur_group_id.()/cur_group_rows.()n_distinct.()nesting.()mutate.():
.keep argument.before/.after argumentstidytable(): Added .name_repair
argumentfilter.() when .by is usedacross.()coalesce.()group_split.(): Added a .named argument.
If .named = TRUE, the resulting list will have names that
indicate the group they are a part of.pivot_longer.(): Can now use
names_to = c(".value", NA) to drop the id column.if_all.()/if_any.()
.by columns (#225)n() in filtering (#226)pivot_longer.()
names_to = c(".value", "id") (#235)if_all.()/if_any.()replace_na.(): Can now replace NULL values
in list-columns!!! now works in
crossing.() and expand_grid.()verb.() equivalents when used inside of
tidytable’s mutate/arrange/filter/summarize/slice.
n()row_number()if_else()/ifelse()case_when()desc()replace_na()pivot_longer.(): Correctly pivots unbalanced datasets
when ".value" is used in names_to (@moutikabdessabour, #212)mutate_across.()mutate_rowwise.() when c_across.() is
usedslice.()/slice_head.()/slice_tail.()/slice_min.()/slice_max.()tidytable has dropped the tibble package
as a dependency and now uses pillar instead.
tibble was originally used for its trunc_mat()
function that enabled tidytables to print like tibbles do in console.
pillar is the same package that tibble uses in
the background.between.()as_tidytable(): Gains .name_repair and
.keep_rownames argscount.(): Added wt, sort and
name args. (@moutikabdessabour, #196)mutate.(): Variables are now updated in order when
using “.by” (#166)pivot_longer.()
names_prefix arg".value" in names_topivot_wider.(): Can now use ".value" in
names_glueseparate.(): Added convert argsummarize.(): Variables are now created in order
(#188)pivot_longer.(): values_drop_na is no
longer the 5th argument in the functionpivot_wider.(): values_fn &
values_fill args are no longer the 6th & 7th argsc_across.()extract.()mutate_rowwise.()nest.()slice_sample.()pivot_longer.()
names_sep, names_pattern,
names_ptypes, names_transform,
names_repair, values_ptypes,
values_transform, fast_pivotfast_pivot arg: Faster pivoting. The “names” column
will be a factor instead of character. Default is set to
FALSE to match tidyverse semantics. Note: This option sets
variable.factor = TRUE in data.table::melt(),
which is what leads to it being faster.pivot_wider.()
names_prefix, names_glue,
names_sort, names_repairdt_verb() versions of functions have been removed
from the package. They have been deprecated with warnings since
v0.5.2crossing.(): Now works with data frame inputs (@moutikabdessabour, #143)distinct.(): Can rename columns (#153)get_dummies.(): Dummy columns are now sorted in
alphabetical orderpivot_wider.(): Added values_fill
argumentget_dummies.()fill.()slice.()mutate.(): Can delete a column using NULL
when .by is provided (#151)mutate_across.(): Can reference other columns in .fns
call (#145)slice.(): Works when .by contains all
columns (#158)unnest.(): Works when the only column is the list
column (#144)bind_cols.(): Name repair uses
vec_as_names() instead of
vec_as_names_legacy()bind_cols.(): Added .name_repair argunnest.(): Added names_sep and
names_repair argsprint()
n, width, and n_extra
argsslice.(): Can now drop specified rows with negative
numbersarrange_across.()case_when.()
case.() will remain in
the package, as it is called like data.table::fcase() but
allows for the default to be a vector.desc.()slice.()unnest.(): .keep_all arg changed to
.dropbind_rows.(): Removed .use_names and
.fill args
TRUE, which matches
dplyr semantics.complete.(): .fill arg renamed to
fillpull.(): defaults to var = -1 instead of
var = NULL
var = NULL was explicitly called.slice.(): .by must be named when slicing
by grouptidytable now integrates better with tidyverse
functions through vctrs. This means code such as
vec_cbind(tibble::tibble(x = 1:3), tidytable(y = "foo"))
will bind the results into a tidytable.complete.(): Can now append extra valuespull.(): Numerical selection now worksslice.(): Now uses ... to select which
rows to slicesemi_join.()rename.(): Works when there are spaces in the column
names (#109)replace_na.()summarize_across.() now
use a suffix instead of a prefixmutate_across.(): Added .names arg to help
with naming newly created columnssummarize_across.(): Added .names arg to
help with naming newly created columnssummarize.(): Added .sort arg to
optionally sort the resulting data.tabletransmute.(): Doesn’t drop “by” columns (#98)slice.()
rows arg (#99).by (#101)full_join.(): No longer returns a keyed data.table
(#102)tibble
glimpse() is now reexportedpillar in a later release once
tibble::trunc_mat() & tibble::glimpse()
are moved therebind_rows.()
use.names arg renamed to .use_namesfill arg renamed to .fillcomplete.()crossing.()expand.()expand_grid.()uncount.()replace_na.(): Now works on
data.frame/data.table inputs as well as
vectorsdesc.() has been deprecated due to incompatibility with
character columnsby has been deprecated for
.by. This will allow “by” to be used as a column name in
mutate.() & summarize.() in future
releases.dt_verb() functions are soft deprecatedseparate_rows.()unnest.(): Added .keep_all arg to keep all
list columns that were not unnestedsummarize_across.() &
summarise_across.()distinct.() bug where it wasn’t returning unique
rowstidytable now works with quosurestidyselect v0.1.1 compatibility: Updated functions to
use where()nest_by.(): Added .keep argeverything.() are now replaced
by normal helpers like everything()rename_across/_if/_at/_all have been superseded by
rename_with.()group_split.(): keep arg renamed to
.keeplags.() & leads.()case.()tidytable now utilizes tidyselect &
vctrsget_dummies.(): cols arg defaults to
c(is.character, is.factor). The result is the same, but is
more consistent with other enhanced selection functionsmutate_across.(): .funs argument renamed
to .fns to match dplyr 1.0desc.()unite.()bind_rows.(): Does name checking and fills missingdistinct.(): Added .keep_all argumentfill.(): Preserves column order when using “by”group_split.(): Added keep argnest_by.()
select.(): Now allows column renamingtransmute.(): Summary functions
(mean/max/etc.) can now be useddistinct.()drop_na.()relocate.()group_split.(): Now returns a list of tidytables
instead of data.tablesleft_join.(): Now works with “by” columns of different
namesverb.()dt_verb() functions still work, but may be slowly
deprecated in future releasesfilter.() now works with “by”pivot_wider.() can now be used with an aggregation
functionpull.() defaults to last column in a data.tableifelse.()n.()nest_by.() replaces dt_group_nest()row_number.()transmute.()unnest.() replaces dt_unnest_legacy()any_of.()fill.()pivot_longer.()unnest.()tidytable class is a data.table subclass with
cleaner printing.tidytable class in the background.tidytable(): Create a data.table/tidytableas_tidytable(): Convert to data.table/tidytableis_tidytable(): Test if an object is a
data.table/tidytabledt_get_dummies(): Get dummy variablesdt_separate()dt_pivot_longer() “cols” arg now defaults to
dt_everything() instead of NULL. The result is
the same, but is more consistent with other enhanced selection
functions.N now works when using dt_slice() &
variants~
in dt_map()dt() docs per CRAN instructionsdt_mutate() & dt_rename() no longer
modify-by-referencedt_unnest_legacy() drops “keep” argument, but
automatically keeps all non-nested columns.
dt() now automatically converts data.frame input to a
data.tabledt_mutate_across(): Added “by” argdt_left_join() fix so columns are ordered
correctly
Need a high-speed mirror for your open-source project?
Contact our mirror admin team at info@clientvps.com.
This archive is provided as a free public service to the community.
Proudly supported by infrastructure from VPSPulse , RxServers , BuyNumber , UnitVPS , OffshoreName and secure payment technology by ArionPay.