The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

prqlr

prqlr status badge CRAN status

R bindings for the prqlc Rust library, powered by savvy.

This version supports PRQL 0.13.0.

Installation

Requires R 4.2.0 or later.

This package can be installed from CRAN or R-universe. If available, a binary package will be installed.

# Install from CRAN
install.packages("prqlr")
# Install from R-universe
install.packages("prqlr", repos = "https://prql.r-universe.dev")

For source installation, pre-built Rust libraries may be available if the environment variable NOT_CRAN is set to "true". (Or, set LIBPRQLR_BUILD to "false")

Sys.setenv(NOT_CRAN = "true")
install.packages("prqlr")

Or, the Rust toolchain (Rust 1.69 or later) must be configured to build the Rust library.

Please check the https://github.com/r-rust/hellorust repository for about Rust code in R packages.

Examples

library(prqlr)

"from mtcars | filter cyl > 6 | select {cyl, mpg}" |>
  prql_compile() |>
  cat()
#> SELECT
#>   cyl,
#>   mpg
#> FROM
#>   mtcars
#> WHERE
#>   cyl > 6
#> 
#> -- Generated by PRQL compiler version:0.13.0 (https://prql-lang.org)

PRQL’s pipelines can be joined by the newline character (\n), or actual newlines in addition to |.

"from mtcars \n filter cyl > 6 \n select {cyl, mpg}" |>
  prql_compile() |>
  cat()
#> SELECT
#>   cyl,
#>   mpg
#> FROM
#>   mtcars
#> WHERE
#>   cyl > 6
#> 
#> -- Generated by PRQL compiler version:0.13.0 (https://prql-lang.org)
"from mtcars
filter cyl > 6
select {cyl, mpg}" |>
  prql_compile() |>
  cat()
#> SELECT
#>   cyl,
#>   mpg
#> FROM
#>   mtcars
#> WHERE
#>   cyl > 6
#> 
#> -- Generated by PRQL compiler version:0.13.0 (https://prql-lang.org)

Thanks to the {tidyquery} package, we can even convert a PRQL query to a SQL query and then to a {dplyr} query!

"from mtcars
filter cyl > 6
select {cyl, mpg}" |>
  prql_compile() |>
  tidyquery::show_dplyr()
#> mtcars %>%
#>   filter(cyl > 6) %>%
#>   select(cyl, mpg)

{knitr} integration

Using {prqlr} with {knitr} makes it easy to create documents that lists PRQL queries and a translated SQL queries, or documents that lists PRQL queries and tables of data retrieved by PRQL queries.

Please check the vignette vignette("knitr", "prqlr") for details.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.