Releases: pola-rs/r-polars
Releases · pola-rs/r-polars
lib-v0.37.0
refactor!: feature flags reorganizization (#800)
v0.13.1
New features
- New method
$write_parquet()
for DataFrame (#758). - S3 methods of
as.data.frame()
forRPolarsDataFrame
andRPolarsLazyFrame
accepts more arguments ofas_polars_df()
and<DataFrame>$to_data_frame()
(#762). - S3 methods of
arrow::as_arrow_table()
andarrow::as_record_batch_reader()
forRPolarsDataFrame
no longer need the{nanoarrow}
package (#754). - Some S3 methods for the
{nanoarrow}
package are added (#730).as_polars_df(<nanoarrow_array_stream>)
as_polars_series(<nanoarrow_array>)
as_polars_series(<nanoarrow_array_stream>)
Bug fixes
$sort()
no longer panicks whendescending = NULL
(#748).
Other enhancements
downlit::autolink()
now recognize the reference pages of this package (#739).
New Contributors
Full Changelog: v0.13.0...v0.13.1
lib-v0.36.2
Rust library for R polars package 0.13.1
v0.13.0
Breaking changes
<Expr>$where()
is removed. Use<Expr>$filter()
instead (#718).- Deprecated functions from 0.12.x are removed (#714).
<Expr>$apply()
and<Expr>$map()
, use$map_elements()
and$map_batches()
instead.pl$polars_info()
, usepolars_info()
instead.
- The environment variables used when building the library have been changed (#693). This only affects selecting the feature flag and selecting profiles during source installation.
RPOLARS_PROFILE
is renamed toLIBR_POLARS_PROFILE
RPOLARS_FULL_FEATURES
is removed andLIBR_POLARS_FEATURES
is added. To select thefull_features
, setLIBR_POLARS_FEATURES="full_features"
.RPOLARS_RUST_SOURCE
, which was used for development, has been removed. If you want to use library binaries located elsewhere, useLIBR_POLARS_PATH
instead.
- Remove the
eager
argument of<SQLContext>$execute()
. Use the$collect()
method after$execute()
oras_polars_df
to get the result as aDataFrame
. (#719) - The argument
name_generator
of$list$to_struct()
is renamedfields
(#724). - The S3 method
[
for the$list
subnamespace is removed (#724). - The option
polars.df_print
has been renamedpolars.df_knitr_print
(#726).
Deprications
$list$lengths()
is deprecated and will be removed in 0.14.0. Use$list$len()
instead (#724).pl$from_arrow()
is deprecated and will be removed in 0.14.0. Useas_polars_df()
oras_polars_series()
instead (#728).pl$set_options()
andpl$reset_options()
are deprecated and will be removed in 0.14.0. See?polars_options
for details (#726).
New features
- For compatibility with CRAN, the number of threads used by Polars is automatically set to 2 if the environment variable
POLARS_MAX_THREADS
is not set (#720). To disable this behavior and have the maximum number of threads used automatically, one of the following ways can be used:- Build the Rust library with the
disable_limit_max_threads
feature. - Set the
polars.limit_max_threads
option toFALSE
with theoptions()
function before loading the package.
- Build the Rust library with the
- New method
$rolling()
forDataFrame
andLazyFrame
. When this is applied, it creates an object of classRPolarsRollingGroupBy
(#682, #694). - New method
$group_by_dynamic()
forDataFrame
andLazyFrame
. When this is applied, it creates an object of classRPolarsDynamicGroupBy
(#691). - New method
$sink_ndjson()
for LazyFrame (#681). - New function
pl$duration()
to create a duration by components (week, day, hour, etc.), and use them with date(time) variables (#692). - New methods
$list$any()
and$list$all()
(#709). - New function
pl$from_epoch()
to convert a Unix timestamp to a date(time) variable (#708). - New methods for the
list
subnamespace:$set_union()
,$set_intersection()
,$set_difference()
,$set_symmetric_difference()
(#712). - New option
int64_conversion
to specify how Int64 columns (that don't have equivalent in base R) should be converted. This option can either be set globally withpl$set_options()
or on a case-by-case basis, e.g with$to_data_frame(int64_conversion =)
(#706). - Several changes in
$join()
forDataFrame
andLazyFrame
(#716):<LazyFrame>$join()
now errors ifother
is not aLazyFrame
and<DataFrame>$join()
errors ifother
is not aDataFrame
.- Some arguments have been reordered (e.g
how
now comes beforeleft_on
). This can lead to bugs if the user didn't use argument names. - Argument
how
now accepts"outer_coalesce"
to coalesce the join keys automatically after joining. - New argument
validate
to perform some checks on join keys (e.g ensure that there is a one-to-one matching between join keys). - New argument
join_nulls
to considernull
values as a valid key.
<DataFrame>$describe()
now works with all datatypes. It also gains aninterpolation
argument that is used for quantiles computation (#717).as_polars_df()
andas_polars_series()
for thearrow
package classes have been rewritten and work better (#727).- Options handling has been rewritten to match the standard option handling in
R (#726):- Options are now passed via
options()
. The option names don't change but they must be prefixed with"polars."
. For example, we can now passoptions(polars.strictly_immutable = FALSE)
. - Options can be accessed with
polars_options()
, which returns a named list (this is the replacement ofpl$options
). - Options can be reset with
polars_options_reset()
(this is the replacement ofpl$reset_options()
).
- Options are now passed via
- New function
polars_envvars()
to print the list of environment variables related to polars (#735).
lib-v0.36.1
Rust library for R polars package 0.13.0
v0.12.2
v0.12.1
This version includes a few additional features and a large amount of documentation improvements.
Deprecations
pl$polars_info()
is moved topolars_info()
.pl$polars_info()
is deprecated and will be removed in 0.13.0 (#662).
Rust-polars update
- rust-polars is updated to 0.36.2 (#659). Most of the changes from 0.35.x to 0.36.2 were covered in R polars 0.12.0.
The main change is thatpl$Utf8
is replaced bypl$String
.pl$Utf8
is an alias and will keep working, butpl$String
is now preferred in the documentation and in new code.
What's changed
- New methods
$str$reverse()
,$str$contains_any()
, and$str$replace_many()
(#641). - New methods
$rle()
and$rle_id()
(#648). - New functions
is_polars_df()
,is_polars_lf()
,is_polars_series()
(#658). $gather()
now accepts negative indexing (#659).
Miscellaneous
- Remove the
Makefile
in favor ofTaskfile.yml
. Please usetask
instead ofmake
as a task runner in the development (#654).
lib-v0.36.0
feat: Bump rust-polars to 0.36.2 (#659) Co-authored-by: eitsupi <[email protected]>
v0.12.0
BREAKING CHANGES DUE TO RUST-POLARS UPDATE
- rust-polars is updated to 2023-12-25 unreleased version (#601, #622).
This is the same version of Python Polars package 0.20.2, so please check
the upgrade guide for details too.pl$scan_csv()
andpl$read_csv()
'scomment_char
argument is renamedcomment_prefix
.<DataFrame>$frame_equal()
and<Series>$series_equal()
are renamed
to<DataFrame>$equals()
and<Series>$equals()
.<Expr>$rolling_*
functions gained an argumentwarn_if_unsorted
.<Expr>$str$json_extract()
is renamed to<Expr>$str$json_decode()
.- Change default join behavior with regard to
null
values. - Preserve left and right join keys in outer joins.
count
now ignores null values.NaN
values are now considered equal.$gather_every()
gained an argumentoffset
.
Breaking changes and deprecations
$apply()
on an Expr or a Series is renamed$map_elements()
, and$map()
is renamed$map_batches()
.$map()
and$apply()
will be removed in 0.13.0 (#534).- Removed
$days()
,$hours()
,$minutes()
,$seconds()
,$milliseconds()
,
$microseconds()
,$nanoseconds()
. Those were deprecated in 0.11.0 (#550). pl$concat_list()
: elements being strings are now interpreted as column names.
Usepl$lit
to concat with a string.<RPolarsExpr>$lit_to_s()
is renamed to<RPolarsExpr>$to_series()
(#582).<RPolarsExpr>$lit_to_df()
is removed (#582).- Change class names and function names associated with class names.
- The class name of all objects created by polars (
DataFrame
,LazyFrame
,
Expr
,Series
, etc.) has changed. They now start withRPolars
, for example
RPolarsDataFrame
. This will only break your code if you directly use those
class names, such as in S3 methods (#554, #585). - Private methods have been unified so that they do not have the
RPolars
prefix (#584).
- The class name of all objects created by polars (
What's changed
- The Extract function (
[
) for DataFrame can use columns not included in the
result for filtering (#547). - The Extract function (
[
) for LazyFrame can filter rows with Expressions (#547). as_polars_df()
fordata.frame
has a new argumentrownames
for to convert
the row.names attribute to a column.
This option is inspired by thetibble::as_tibble()
function (#561).as_polars_df()
fordata.frame
has a new argumentmake_names_unique
(#561).- New methods
$str$to_date()
,$str$to_time()
,$str$to_datetime()
as
alternatives to$str$strptime()
(#558). - The
dim()
function for DataFrame and LazyFrame correctly returns integer instead of
double (#577). - The conversion of R's
POSIXct
class to Polars datetime now works correctly with millisecond
precision (#589). <LazyFrame>$filter()
,<DataFrame>$filter()
, andpl$when()
now allow multiple conditions
to be separated by commas, likelf$filter(pl$col("foo") == 1, pl$col("bar") != 2)
(#598).- New method
$replace()
for expressions (#601). - Better error messages for trailing argument commas such as
pl$DataFrame()$select("a",)
(#607). - New function
pl$threadpool_size()
to get the number of threads used by Polars (#620).
Thread pool size is also included in the output ofpl$polars_info()
.
lib-v0.35.1
docs(website): better display of "Usage" section (#626) Co-authored-by: eitsupi <[email protected]>