suppressPackageStartupMessages(library(stars)) if (require(dplyr, quietly = TRUE)) { tif = system.file("tif/L7_ETMs.tif", package = "stars") x <- read_stars(tif) (y <- x %>% select(L7_ETMs.tif)) (y <- x %>% filter(band > 2)) (z <- x %>% mutate(foo = 2* L7_ETMs.tif)) x %>% pull(L7_ETMs.tif) %>% class() x %>% filter(x > 289900) x %>% slice("x", 50:100) suppressPackageStartupMessages(library(ggplot2)) ggplot() + geom_stars(data = x) + coord_equal() + facet_wrap(~band) ggplot() + geom_stars(data = x[,c(1:50,52:100),c(1:45, 50:60)]) + coord_equal() ggplot() + geom_stars(data = x[,1:10,1:10,1:2], sf = TRUE) + facet_wrap(~band) # see https://github.com/r-spatial/stars/issues/539 : x <- read_stars(system.file("tif/L7_ETMs.tif", package = "stars")) y <- transmute(x, L7_ETMs.tif = units::set_units(L7_ETMs.tif, degree_C)) # same as x but with units x - slice(x, 'band', 1) # runs as expected, recycling the second object try(y - slice(x, 'band', 1)) # fails as expected because x is unitless try(x - slice(y, 'band', 1)) # fails as expected y - slice(y, 'band', 1) # runs as expected }