View source: R/duckspatial_df_sf_methods.R
| ddbs_compute | R Documentation |
Executes the accumulated query and stores the result in a DuckDB temporary
table. The result remains lazy (a duckspatial_df) but points to the
materialized data, avoiding repeated computation of complex query plans.
ddbs_compute(x, ..., name = NULL, temporary = TRUE)
x |
A |
... |
Additional arguments passed to |
name |
Optional name for the result table. If NULL, a unique temporary name is generated. |
temporary |
If TRUE (default), creates a temporary table that is automatically cleaned up when the connection closes. |
This is useful when you want to:
Cache intermediate results for reuse across multiple subsequent operations
Simplify complex query plans before heavy operations like spatial joins
Force execution at a specific point without pulling data into R memory
A new duckspatial_df pointing to the materialized table
## Not run:
library(duckspatial)
library(dplyr)
# Load lazy spatial data
countries <- ddbs_open_dataset(
system.file("spatial/countries.geojson", package = "duckspatial")
)
# Complex pipeline - ddbs_compute() caches intermediate result
cached <- countries |>
filter(CNTR_ID %in% c("DE", "FR", "IT")) |>
ddbs_compute() # Execute and store in temp table
# Check query plan - should reference temp table
show_query(cached)
# Further operations continue from cached result
result <- cached |>
ddbs_filter(other_layer, predicate = "intersects") |>
st_as_sf()
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.