- Update to PrettyTables.jl v3 (#415)
- Fix a bug where multicolumn selectors were ignored by
@select!,@rselect, and@rselect!(Issue #404), (#405)
- Bumped the Chain.jl compat entry in the Project.toml (#382)
- Fixed macro hygiene issues (#384)
- Fixed a bug with broadcasting in
@astable(#382) - Added
@note!and@label!, along withprintlabelsandprintnotesto make working with metadata easier. (#377) - Added support for
Not,All, andColsin@select, making it easier to keep or drop many columns at once. (#372) - Added the
@groupbymacro, which provides an easier syntax for grouping data frames (#373)
- Fixed a bug where
ByRowwas not properly identified if DataFramesMeta.jl wasimported (#366)
- Add the
@renamemacro for renaming columns in keyword argument-like syntax. (#343) - Fix a bug relating to
^for escaping symbols (#347) - Fix typos in documentation (#355)
- Add the
@distinctand@rdistinctmacros, for getting unique observations of a data frame. (#340) - Fix a bug which created
UndefVarErrorswith broadcasted functions. (#346) - Fixed bad use of
sortpermwith correct use ofordinalrankfrom StatsBase.jl in tutorial (#338) - Minor documentation fixes (#345)
-
Add support for Chain.jl version 0.5, and remove support for Chain.jl 0.4. In Chain.jl 0.4, the command
chain df begin f(df) @aside x = 1 endcreates a
letscope and thusxis not visible outside the@chainblock. In version 0.5, the above macro does not create aletscope, makingxaccessible outside the block. To restore 0.4 behavior, write@chain let .... Because this a breaking change of a dependency, we also release a version bump of DataFramesMeta.jl. (#332)
- Allow
AsTableon the RHS of transformations. This allows one to work with collections of columns programtically, such as taking the row-wisemeanof many columns. (#307) - Expressions on the RHS of the form
f ∘ gwill now be passed directly to the underlyingtransformcall without modification, reducing compilation latency. (#317) - Nested functions, of the form
f(g(:x))will be transformed to(f ∘ g)(:x), further reducing latency. (#319) - Improvements to documentation (#305, #314, #315, #318, #322, #326)
- Add the
@astablemacro-flag to construct multiple inter-dependent columns at once. (#298). - As a result of #298, automatic
AsTableexpansion in non-keyword transformations in the first (and only) transformations in@byand@combineare no longer supported. Previously, such operations were allowed, but with a visible deprecation warning.
- Fix a bug with
@rtransform!and@rselect!, where the macros were not actually mutating the data frame. (#294)
- Add
@passmissingflag for skipping missing values in row-wise macros. (#272) - Add row-wise transformation macros
@rtransform,@rselect,@rsubset, and@rorderby. (#267) - Add
$to escape columns rather thancols, which is now deprecated. (#285) - Fix a bug disallowing multiple arguments in function-like syntax for row-wise macros. (#281)
- Documentation improvements (#277, #279, #284, #286)
- Add a new dplyr-inspired tutorial (#279)
- The order of rows after a
@transform(gd::GroupedDataFrame, args...)now matches the order of rows returned afterDataFrames.transform(gd::GroupedDataFrame, args...). @selectnow supportsGroupedDataFramewith the same behavior asDataFrames.select(df::GroupedDataFrame, args...)([#180])@orderby(gd::GroupedDataFrame, args...)is now reserved and will error.- Restrictions are imposed on the types of column references allowed when using
cols. Mixing integer column references with other types now errors. ([#183]) @wherewith a grouped data frame will now perform operations by group and filter rows in the parentAbstractDataFrame. The operation no longer filters groups. Returns a freshDataFrame.@based_onhas been renamed to@combine@byrowhas been renamed to@eachrow