df_from_file()
and related functions support multiple
files (#194, #195), show a clear error message for non-string
path
arguments (#182), and create a tibble by default
(#177).as_duckplyr_tibble()
to convert a data frame to a
duckplyr tibble (#177).?df_from_file
shows how to read multiple files (#181,
#186) and how to specify CSV column types (#140, #189), and is shown
correctly in reference index (#173, #190).as.integer()
,
NA
and %in%
(#83, #154, #148, #155, #159,
#160).library(duckplyr)
calls
methods_overwrite()
(#164).grepl()
.intersect()
,
setdiff()
, symdiff()
, union()
,
and union_all()
(#169).NA
and those used in an
expression (#157).head(-1)
forwards to the default implementation (#131,
#156).left_join()
and other join functions call
auto_copy()
.row_number()
returns integer.is.na(NaN)
is TRUE
.summarise(count = n(), count = n())
creates only one
column named count
.?df_from_file
(@andreranza, #133, #134).vec_ptype()
does not materialize (#149).expect_identical()
to
capture differences between doubles and integers.df_to_parquet()
to write to Parquet, new
convenience functions df_from_csv()
,
duckdb_df_from_csv()
, df_from_parquet()
and
duckdb_df_from_parquet()
(#87, #89, #96, #128).summarise()
(#72, #106).summarise()
no longer restores subclass.log10()
and
log()
.fallback_sitrep()
and related functionality for
collecting telemetry data (#102, #107, #110, #111, #115). No data is
collected by default, only a message is displayed once per session and
then every eight hours. Opt in or opt out by setting environment
variables.group_by()
and other methods to collect
fallback information (#94, #104, #105).suppressWarnings()
as the identity
function.cli::cli_abort()
over stop()
or
rlang::abort()
(#114)..data$a
and .env$a
.integer
, numeric
, logical
,
Date
, POSIXct
, and difftime
for
now.DUCKPLYR_METHODS_OVERWRITE
is set to TRUE
, loading duckplyr automatically calls
methods_overwrite()
.log()
and
log10()
.methods_overwrite()
and methods_restore()
show a message.grepl(x = NA)
gives correct results.auto_copy()
for non-data-frame input.distinct()
now preserves order in corner cases (#77,
#78).log(0)
and
log(-1)
(#75, #76).mutate()
that are actually
representable in duckdb (#73).ifelse()
, support
if_else()
(#79).dplyr_reconstruct()
method (#48).meta_replay()
.arrange()
in case of ties.slice_sample()
, not
sample_n()
or sample_frac()
(#74).IS NOT DISTINCT FROM
for faster execution
(duckdb/duckdb-r#41, #68).summarise()
keeps "duckplyr_df"
class
(#63, #64).
Fix compatibility with duckdb >= 0.9.1.
Skip tests that give different output on dev tidyselect.
Import utils::globalVariables()
.
Small README improvements (@maelle, #34, #57).
Fix 301 in README.
Improve documentation.
Work around problem with dplyr_reconstruct()
in R
4.3.
Rename duckdb_from_file()
to
df_from_file()
.
Unexport private duckdb_rel_from_df()
,
rel_from_df()
, wrap_df()
and
wrap_integer()
.
Reexport %>%
and tibble()
.
R CMD check
.relexpr_window()
for now.Initial version, exporting: - new_relational()
to
construct objects of class "relational"
- Generics
rel_aggregate()
, rel_distinct()
,
rel_filter()
, rel_join()
,
rel_limit()
, rel_names()
,
rel_order()
, rel_project()
,
rel_set_diff()
, rel_set_intersect()
,
rel_set_symdiff()
, rel_to_df()
,
rel_union_all()
- new_relexpr()
to construct
objects of class "relational_relexpr"
- Expression builders
relexpr_constant()
, relexpr_function()
,
relexpr_reference()
, relexpr_set_alias()
,
relexpr_window()