| pull.Spat {tidyterra} | R Documentation |
Extract a single layer/attribute
Description
pull() is similar to $ on a data frame. It's mostly useful because it
looks a little nicer in pipes and it can optionally name the output.
It is possible to extract the geographic coordinates of a SpatRaster.
You need to use pull(.data, x, xy = TRUE). x and y are reserved
names on terra, since they refer to the geographic coordinates of the layer.
See Examples and section About layer names on as_tibble.Spat().
Usage
## S3 method for class 'SpatRaster'
pull(.data, var = -1, name = NULL, ...)
## S3 method for class 'SpatVector'
pull(.data, var = -1, name = NULL, ...)
Arguments
.data |
A |
var |
A variable specified as:
The default returns the last layer/attribute (on the assumption that's the column you've created most recently). |
name |
An optional parameter that specifies the column to be used as
names for a named vector. Specified in a similar manner as |
... |
Arguments passed on to |
Value
A vector the same number of cells/geometries as .data.
On SpatRaster objects, note that the default (na.rm = FALSE) would remove
empty cells, so you may need to pass (na.rm = FALSE) to .... See
terra::as.data.frame().
terra equivalent
Methods
Implementation of the generic dplyr::pull() function. This is done
by coercing the Spat* object to a tibble first (see as_tibble.Spat) and
then using dplyr::pull() method over the tibble.
SpatRaster
When passing option na.rm = TRUE to ..., only cells with a value
distinct to NA are extracted. See terra::as.data.frame().
If xy = TRUE option is passed to ..., two columns names x and y
(corresponding to the geographic coordinates of each cell) are available
in position 1 and 2. Hence, pull(.data, 1) and
pull(.data, 1, xy = TRUE) return different result.
SpatVector
When passing geom = "WKT"/geom = "HEX" to ..., the geometry of the
SpatVector can be pulled passing var = geometry. Similarly to
SpatRaster method, when using geom = "XY" the x,y coordinates can be
pulled with var = x/var = y. See terra::as.data.frame() options.
See Also
Other dplyr verbs that operate on columns:
glimpse.Spat,
mutate.Spat,
relocate.Spat,
rename.Spat,
select.Spat
Other dplyr methods:
arrange.SpatVector(),
bind_cols.SpatVector,
bind_rows.SpatVector,
count.SpatVector(),
distinct.SpatVector(),
filter-joins.SpatVector,
filter.Spat,
glimpse.Spat,
group-by.SpatVector,
mutate-joins.SpatVector,
mutate.Spat,
relocate.Spat,
rename.Spat,
rowwise.SpatVector(),
select.Spat,
slice.Spat,
summarise.SpatVector()
Examples
library(terra)
f <- system.file("extdata/cyl_tile.tif", package = "tidyterra")
r <- rast(f)
# Extract second layer
r %>%
pull(2) %>%
head()
# With xy the first two cols are `x` (longitude) and `y` (latitude)
r %>%
pull(2, xy = TRUE) %>%
head()
# With renaming
r %>%
mutate(cat = cut(cyl_tile_3, c(0, 100, 300))) %>%
pull(cyl_tile_3, name = cat) %>%
head()