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()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.