Learn R Programming

⚠️There's a newer version (2.5.0) of this package.Take me there.

dbplyr

Overview

dbplyr is the database backend for dplyr. If you are using dplyr to connect to databases, you generally will not need to use any functions from dbplyr, but you will need to make sure it’s installed.

Installation

# The easiest way to get dbplyr is to install the whole tidyverse:
install.packages("tidyverse")

# Alternatively, install just dbplyr:
install.packages("dbplyr")

# Or the the development version from GitHub:
# install.packages("devtools")
devtools::install_github("tidyverse/dbplyr")

Usage

dbplyr is designed to work with database tables as if they were local data frames. To demonstrate this I’ll first create an in-memory SQLite database and copy over a dataset:

library(dplyr, warn.conflicts = FALSE)

con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
copy_to(con, mtcars)

Now you can retrieve a table using tbl() (see ?tbl_dbi for more details):

mtcars2 <- tbl(con, "mtcars")
mtcars2
#> # Source:   table<mtcars> [?? x 11]
#> # Database: sqlite 3.22.0 [:memory:]
#>      mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
#>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#>  1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
#>  2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
#>  3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
#>  4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
#>  5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
#>  6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
#>  7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
#>  8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
#>  9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
#> 10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
#> # … with more rows

More complicated expressions are evaluated lazily:

# Lazily generates query
summary <- mtcars2 %>% 
  group_by(cyl) %>% 
  summarise(mpg = mean(mpg, na.rm = TRUE)) %>% 
  arrange(desc(mpg))

# see query
summary %>% show_query()
#> <SQL>
#> SELECT `cyl`, AVG(`mpg`) AS `mpg`
#> FROM `mtcars`
#> GROUP BY `cyl`
#> ORDER BY `mpg` DESC

# execute query and retrieve results
summary %>% collect()
#> # A tibble: 3 x 2
#>     cyl   mpg
#>   <dbl> <dbl>
#> 1     4  26.7
#> 2     6  19.7
#> 3     8  15.1

Copy Link

Version

Install

install.packages('dbplyr')

Monthly Downloads

484,776

Version

1.3.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Hadley Wickham

Last Published

January 9th, 2019

Functions in dbplyr (1.3.0)

do.tbl_sql

Perform arbitrary computation on remote backend
partial_eval

Partially evaluate an expression.
build_sql

Build a SQL string.
copy_to.src_sql

Copy a local data frame to a DBI backend.
sql

SQL escaping.
join.tbl_sql

Join sql tbls.
lahman

Cache and retrieve an src_sqlite of the Lahman baseball database.
lazy_ops

Lazy operations
ident

Flag a character vector as SQL identifiers
sql_build

Build and render SQL from a sequence of lazy operations
memdb_frame

Create a database table in temporary in-memory database.
sql_quote

Helper function for quoting sql elements.
in_schema

Refer to a table in a schema
sql_variant

Create an sql translator
sql_escape_logical

More SQL generics
remote_name

Metadata about a remote table
sql_expr

Generate SQL from R expressions
simulate_dbi

Create a local lazy tibble
tbl_sql

Create an SQL tbl (abstract)
testing

Infrastructure for testing dplyr
db_copy_to

More db generics
translate_sql

Translate an expression to sql.
dbplyr-package

dbplyr: A 'dplyr' Back End for Databases
win_over

Generate SQL expression for window functions
window_order

Override window order and frame
escape

Escape/quote a string.
src_dbi

dplyr backend for any DBI-compatible database
src_sql

Create a "sql src" object
named_commas

Provides comma-separated string out ot the parameters
nycflights13

Database versions of the nycflights13 data