compute: Force computation of a database query

View source: R/compute-collect.r

computeR Documentation

Force computation of a database query


compute() stores results in a remote temporary table. collect() retrieves data into a local tibble. collapse() is slightly different: it doesn't force computation, but instead forces generation of the SQL query. This is sometimes needed to work around bugs in dplyr's SQL generation.

All functions preserve grouping and ordering.


compute(x, ...)

collect(x, ...)

collapse(x, ...)



A data frame, data frame extension (e.g. a tibble), or a lazy data frame (e.g. from dbplyr or dtplyr). See Methods, below, for more details.


Arguments passed on to methods


These functions are generics, which means that packages can provide implementations (methods) for other classes. See the documentation of individual methods for extra arguments and differences in behaviour.

Methods available in currently loaded packages:

  • compute(): \Sexpr[stage=render,results=rd]{dplyr:::methods_rd("compute")}

  • collect(): \Sexpr[stage=render,results=rd]{dplyr:::methods_rd("collect")}

  • collapse(): \Sexpr[stage=render,results=rd]{dplyr:::methods_rd("collapse")}

See Also

copy_to(), the opposite of collect(): it takes a local data frame and uploads it to the remote source.


mtcars2 <- dbplyr::src_memdb() %>%
  copy_to(mtcars, name = "mtcars2-cc", overwrite = TRUE)

remote <- mtcars2 %>%
  filter(cyl == 8) %>%

# Compute query and save in remote table

# Compute query bring back to this session

# Creates a fresh query based on the generated SQL

dplyr documentation built on Sept. 1, 2022, 5:06 p.m.