Convert a String column into a Date column
Description
Convert a String column into a Date column
Usage
<Expr>$str$to_date(format = NULL, ..., strict = TRUE, exact = TRUE, cache = TRUE)
Arguments
format
|
Format to use for conversion. Refer to
the
chrono crate documentation for the full specification. Example:
“%Y-%m-%d %H:%M:%S”. If NULL (default), the
format is inferred from the data. Notice that time zone
%Z is not supported and will just
ignore timezones. Numeric time zones like
%z or
%:z are supported.
|
…
|
These dots are for future extensions and must be empty. |
strict
|
If TRUE (default), raise an error if a single string cannot
be parsed. If FALSE, produce a polars null.
|
exact
|
If TRUE (default), require an exact format match. If
FALSE, allow the format to match anywhere in the target
string. Conversion to the Time type is always exact. Note that using
exact = FALSE introduces a performance penalty - cleaning
your data beforehand will almost certainly be more performant.
|
cache
|
Use a cache of unique, converted dates to apply the datetime conversion. |
Value
A polars expression
See Also
-
\$str$strptime()
Examples
library("polars")
df <- pl$DataFrame(x = c("2020/01/01", "2020/02/01", "2020/03/01"))
df$select(pl$col("x")$str$to_date())
#> shape: (3, 1)
#> ┌────────────┐
#> │ x │
#> │ --- │
#> │ date │
#> ╞════════════╡
#> │ 2020-01-01 │
#> │ 2020-02-01 │
#> │ 2020-03-01 │
#> └────────────┘
# by default, this errors if some values cannot be converted
df <- pl$DataFrame(x = c("2020/01/01", "2020 02 01", "2020-03-01"))
try(df$select(pl$col("x")$str$to_date()))
#> Error in df$select(pl$col("x")$str$to_date()) :
#> Evaluation failed in `$select()`.
#> Caused by error:
#> ! Evaluation failed in `$collect()`.
#> Caused by error:
#> ! Invalid operation: conversion from `str` to `date` failed in column 'x' for 1 out of 3 values: ["2020 02 01"]
#>
#> You might want to try:
#> - setting `strict=False` to set values that cannot be converted to `null`
#> - using `str.strptime`, `str.to_date`, or `str.to_datetime` and providing a format string
#> shape: (3, 1)
#> ┌────────────┐
#> │ x │
#> │ --- │
#> │ date │
#> ╞════════════╡
#> │ 2020-01-01 │
#> │ null │
#> │ 2020-03-01 │
#> └────────────┘