To polars DataFrame
Description
as_polars_df()
is a generic function that converts an R
object to a polars DataFrame.
Usage
as_polars_df(x, ...)
# Default S3 method:
as_polars_df(x, ...)
# S3 method for class 'data.frame'
as_polars_df(
x,
...,
rownames = NULL,
make_names_unique = TRUE,
schema = NULL,
schema_overrides = NULL
)
# S3 method for class 'RPolarsDataFrame'
as_polars_df(x, ...)
# S3 method for class 'RPolarsGroupBy'
as_polars_df(x, ...)
# S3 method for class 'RPolarsRollingGroupBy'
as_polars_df(x, ...)
# S3 method for class 'RPolarsDynamicGroupBy'
as_polars_df(x, ...)
# S3 method for class 'RPolarsSeries'
as_polars_df(x, ...)
# S3 method for class 'RPolarsLazyFrame'
as_polars_df(
x,
n_rows = Inf,
...,
type_coercion = TRUE,
predicate_pushdown = TRUE,
projection_pushdown = TRUE,
simplify_expression = TRUE,
slice_pushdown = TRUE,
comm_subplan_elim = TRUE,
comm_subexpr_elim = TRUE,
cluster_with_columns = TRUE,
streaming = FALSE,
no_optimization = FALSE,
collect_in_background = FALSE
)
# S3 method for class 'RPolarsLazyGroupBy'
as_polars_df(x, ...)
# S3 method for class 'ArrowTabular'
as_polars_df(
x,
...,
rechunk = TRUE,
schema = NULL,
schema_overrides = NULL,
experimental = FALSE
)
# S3 method for class 'RecordBatchReader'
as_polars_df(x, ..., experimental = FALSE)
# S3 method for class 'nanoarrow_array'
as_polars_df(x, ...)
# S3 method for class 'nanoarrow_array_stream'
as_polars_df(x, ..., experimental = FALSE)
Arguments
x
|
Object to convert to a polars DataFrame. |
…
|
Additional arguments passed to methods. |
rownames
|
How to treat existing row names of a data frame:
|
make_names_unique
|
A logical flag to replace duplicated column names with unique names. If
FALSE and there are duplicated column names, an error is
thrown.
|
schema
|
named list of DataTypes, or character vector of column names. Should
match the number of columns in x and correspond to each
column in x by position. If a column in x does
not match the name or type at the same position, it will be
renamed/recast. If NULL (default), convert columns as is.
|
schema_overrides
|
named list of DataTypes. Cast some columns to the DataType. |
n_rows
|
Number of rows to fetch. Defaults to Inf , meaning all rows.
|
type_coercion
|
Logical. Coerce types such that operations succeed and run on minimal required memory. |
predicate_pushdown
|
Logical. Applies filters as early as possible at scan level. |
projection_pushdown
|
Logical. Select only the columns that are needed at the scan level. |
simplify_expression
|
Logical. Various optimizations, such as constant folding and replacing expensive operations with faster alternatives. |
slice_pushdown
|
Logical. Only load the required slice from the scan level. Don’t
materialize sliced outputs (e.g. join$head(10) ).
|
comm_subplan_elim
|
Logical. Will try to cache branching subplans that occur on self-joins or unions. |
comm_subexpr_elim
|
Logical. Common subexpressions will be cached and reused. |
cluster_with_columns
|
Combine sequential independent calls to with_columns() .
|
streaming
|
Logical. Run parts of the query in a streaming fashion (this is in an alpha state). |
no_optimization
|
Logical. Sets the following parameters to FALSE :
predicate_pushdown , projection_pushdown ,
slice_pushdown , comm_subplan_elim ,
comm_subexpr_elim , cluster_with_columns .
|
collect_in_background
|
Logical. Detach this query from R session. Computation will start in background. Get a handle which later can be converted into the resulting DataFrame. Useful in interactive mode to not lock R session. |
rechunk
|
A logical flag (default TRUE ). Make sure that all data of
each column is in contiguous memory.
|
experimental
|
If TRUE , use experimental Arrow C stream interface inside
the function. This argument is experimental and may be removed in the
future.
|
Details
For LazyFrame objects, this function is a shortcut for $collect() or $fetch(), depending on whether the number of rows to fetch is infinite or not.
Value
a DataFrame
Examples
library("polars")
# Convert the row names of a data frame to a column
as_polars_df(mtcars, rownames = "car")
#> shape: (32, 12)
#> ┌───────────────────┬──────┬─────┬───────┬───┬─────┬─────┬──────┬──────┐
#> │ car ┆ mpg ┆ cyl ┆ disp ┆ … ┆ vs ┆ am ┆ gear ┆ carb │
#> │ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │
#> │ str ┆ f64 ┆ f64 ┆ f64 ┆ ┆ f64 ┆ f64 ┆ f64 ┆ f64 │
#> ╞═══════════════════╪══════╪═════╪═══════╪═══╪═════╪═════╪══════╪══════╡
#> │ Mazda RX4 ┆ 21.0 ┆ 6.0 ┆ 160.0 ┆ … ┆ 0.0 ┆ 1.0 ┆ 4.0 ┆ 4.0 │
#> │ Mazda RX4 Wag ┆ 21.0 ┆ 6.0 ┆ 160.0 ┆ … ┆ 0.0 ┆ 1.0 ┆ 4.0 ┆ 4.0 │
#> │ Datsun 710 ┆ 22.8 ┆ 4.0 ┆ 108.0 ┆ … ┆ 1.0 ┆ 1.0 ┆ 4.0 ┆ 1.0 │
#> │ Hornet 4 Drive ┆ 21.4 ┆ 6.0 ┆ 258.0 ┆ … ┆ 1.0 ┆ 0.0 ┆ 3.0 ┆ 1.0 │
#> │ Hornet Sportabout ┆ 18.7 ┆ 8.0 ┆ 360.0 ┆ … ┆ 0.0 ┆ 0.0 ┆ 3.0 ┆ 2.0 │
#> │ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │
#> │ Lotus Europa ┆ 30.4 ┆ 4.0 ┆ 95.1 ┆ … ┆ 1.0 ┆ 1.0 ┆ 5.0 ┆ 2.0 │
#> │ Ford Pantera L ┆ 15.8 ┆ 8.0 ┆ 351.0 ┆ … ┆ 0.0 ┆ 1.0 ┆ 5.0 ┆ 4.0 │
#> │ Ferrari Dino ┆ 19.7 ┆ 6.0 ┆ 145.0 ┆ … ┆ 0.0 ┆ 1.0 ┆ 5.0 ┆ 6.0 │
#> │ Maserati Bora ┆ 15.0 ┆ 8.0 ┆ 301.0 ┆ … ┆ 0.0 ┆ 1.0 ┆ 5.0 ┆ 8.0 │
#> │ Volvo 142E ┆ 21.4 ┆ 4.0 ┆ 121.0 ┆ … ┆ 1.0 ┆ 1.0 ┆ 4.0 ┆ 2.0 │
#> └───────────────────┴──────┴─────┴───────┴───┴─────┴─────┴──────┴──────┘
# Convert a data frame, with renaming all columns
as_polars_df(
data.frame(x = 1, y = 2),
schema = c("a", "b")
)
#> shape: (1, 2)
#> ┌─────┬─────┐
#> │ a ┆ b │
#> │ --- ┆ --- │
#> │ f64 ┆ f64 │
#> ╞═════╪═════╡
#> │ 1.0 ┆ 2.0 │
#> └─────┴─────┘
# Convert a data frame, with renaming and casting all columns
as_polars_df(
data.frame(x = 1, y = 2),
schema = list(b = pl$Int64, a = pl$String)
)
#> shape: (1, 2)
#> ┌─────┬─────┐
#> │ b ┆ a │
#> │ --- ┆ --- │
#> │ i64 ┆ str │
#> ╞═════╪═════╡
#> │ 1 ┆ 2.0 │
#> └─────┴─────┘
# Convert a data frame, with casting some columns
as_polars_df(
data.frame(x = 1, y = 2),
schema_overrides = list(y = pl$String) # cast some columns
)
#> shape: (1, 2)
#> ┌─────┬─────┐
#> │ x ┆ y │
#> │ --- ┆ --- │
#> │ f64 ┆ str │
#> ╞═════╪═════╡
#> │ 1.0 ┆ 2.0 │
#> └─────┴─────┘
# Convert an arrow Table to a polars DataFrame
at = arrow::arrow_table(x = 1:5, y = 6:10)
as_polars_df(at)
#> shape: (5, 2)
#> ┌─────┬─────┐
#> │ x ┆ y │
#> │ --- ┆ --- │
#> │ i32 ┆ i32 │
#> ╞═════╪═════╡
#> │ 1 ┆ 6 │
#> │ 2 ┆ 7 │
#> │ 3 ┆ 8 │
#> │ 4 ┆ 9 │
#> │ 5 ┆ 10 │
#> └─────┴─────┘
# Create a polars DataFrame from a data.frame
lf = as_polars_df(mtcars)$lazy()
# Collect all rows from the LazyFrame
as_polars_df(lf)
#> shape: (32, 11)
#> ┌──────┬─────┬───────┬───────┬───┬─────┬─────┬──────┬──────┐
#> │ mpg ┆ cyl ┆ disp ┆ hp ┆ … ┆ vs ┆ am ┆ gear ┆ carb │
#> │ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │
#> │ f64 ┆ f64 ┆ f64 ┆ f64 ┆ ┆ f64 ┆ f64 ┆ f64 ┆ f64 │
#> ╞══════╪═════╪═══════╪═══════╪═══╪═════╪═════╪══════╪══════╡
#> │ 21.0 ┆ 6.0 ┆ 160.0 ┆ 110.0 ┆ … ┆ 0.0 ┆ 1.0 ┆ 4.0 ┆ 4.0 │
#> │ 21.0 ┆ 6.0 ┆ 160.0 ┆ 110.0 ┆ … ┆ 0.0 ┆ 1.0 ┆ 4.0 ┆ 4.0 │
#> │ 22.8 ┆ 4.0 ┆ 108.0 ┆ 93.0 ┆ … ┆ 1.0 ┆ 1.0 ┆ 4.0 ┆ 1.0 │
#> │ 21.4 ┆ 6.0 ┆ 258.0 ┆ 110.0 ┆ … ┆ 1.0 ┆ 0.0 ┆ 3.0 ┆ 1.0 │
#> │ 18.7 ┆ 8.0 ┆ 360.0 ┆ 175.0 ┆ … ┆ 0.0 ┆ 0.0 ┆ 3.0 ┆ 2.0 │
#> │ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │
#> │ 30.4 ┆ 4.0 ┆ 95.1 ┆ 113.0 ┆ … ┆ 1.0 ┆ 1.0 ┆ 5.0 ┆ 2.0 │
#> │ 15.8 ┆ 8.0 ┆ 351.0 ┆ 264.0 ┆ … ┆ 0.0 ┆ 1.0 ┆ 5.0 ┆ 4.0 │
#> │ 19.7 ┆ 6.0 ┆ 145.0 ┆ 175.0 ┆ … ┆ 0.0 ┆ 1.0 ┆ 5.0 ┆ 6.0 │
#> │ 15.0 ┆ 8.0 ┆ 301.0 ┆ 335.0 ┆ … ┆ 0.0 ┆ 1.0 ┆ 5.0 ┆ 8.0 │
#> │ 21.4 ┆ 4.0 ┆ 121.0 ┆ 109.0 ┆ … ┆ 1.0 ┆ 1.0 ┆ 4.0 ┆ 2.0 │
#> └──────┴─────┴───────┴───────┴───┴─────┴─────┴──────┴──────┘
#> shape: (5, 11)
#> ┌──────┬─────┬───────┬───────┬───┬─────┬─────┬──────┬──────┐
#> │ mpg ┆ cyl ┆ disp ┆ hp ┆ … ┆ vs ┆ am ┆ gear ┆ carb │
#> │ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │
#> │ f64 ┆ f64 ┆ f64 ┆ f64 ┆ ┆ f64 ┆ f64 ┆ f64 ┆ f64 │
#> ╞══════╪═════╪═══════╪═══════╪═══╪═════╪═════╪══════╪══════╡
#> │ 21.0 ┆ 6.0 ┆ 160.0 ┆ 110.0 ┆ … ┆ 0.0 ┆ 1.0 ┆ 4.0 ┆ 4.0 │
#> │ 21.0 ┆ 6.0 ┆ 160.0 ┆ 110.0 ┆ … ┆ 0.0 ┆ 1.0 ┆ 4.0 ┆ 4.0 │
#> │ 22.8 ┆ 4.0 ┆ 108.0 ┆ 93.0 ┆ … ┆ 1.0 ┆ 1.0 ┆ 4.0 ┆ 1.0 │
#> │ 21.4 ┆ 6.0 ┆ 258.0 ┆ 110.0 ┆ … ┆ 1.0 ┆ 0.0 ┆ 3.0 ┆ 1.0 │
#> │ 18.7 ┆ 8.0 ┆ 360.0 ┆ 175.0 ┆ … ┆ 0.0 ┆ 0.0 ┆ 3.0 ┆ 2.0 │
#> └──────┴─────┴───────┴───────┴───┴─────┴─────┴──────┴──────┘