Hi Igor, I had the same issue using terra rather than sf a couple of weeks ago.
I thought of solving the issue as follow: 1. store the shapefiles under extdata. 2. create a function that loads the files: .build_internal_files <- function() { ## This function should not be called by the user. ## It performs the lazy loading of the data since terra cannot handle rda files assign("CountryBorders", terra::vect(system.file("extdata/CountryBorders.shp", package = "IsoriX")), envir = as.environment("package:IsoriX")) assign("OceanMask", terra::vect(system.file("extdata/OceanMask.shp", package = "IsoriX")), envir = as.environment("package:IsoriX")) } 1. call that function automatically upon attach using .onAttach(): .onAttach <- function(libname, pkgname) { .build_internal_files() ## lazy loading of the internal data } It seems to work... Note that .onAttach() is a standard way of defining a function that is recognised by R and ran when the package is attached. ++ Alex On Thu, 9 Feb 2023 at 11:11, Duncan Murdoch <murdoch.dun...@gmail.com> wrote: > On 09/02/2023 3:56 a.m., Ivan Krylov wrote: > > В Wed, 8 Feb 2023 11:32:36 -0300 > > Igor L <igorlal...@gmail.com> пишет: > > > >> spatial_aisp <- sf::st_read('data-raw/shp_aisp/lm_aisp_2019.shp') > >> > >> plot(spatial_aisp) # works > >> > >> # Same data from .rda file after use usethis::use_data(spatial_aisp, > >> overwrite = TRUE) > >> > >> x <- ispdata::spatial_aisp > >> > >> plot(x) # do not work > > > > Does this break in a new R session, but start working when you load the > > sf namespace? I think that your package needs to depend on sf in order > > for this to work. Specifying it in Imports may be enough to make the > > plot.sf S3 method available to the user. > > Specifying a package in the Imports field of DESCRIPTION guarantees that > it will be available to load, but doesn't load it. Importing something > from it via the NAMESPACE triggers a load, as does executing code like > pkg::fn, or explicitly calling loadNamespace("pkg"), or loading a > package that does one of these things. > > > > You may encounter other problems if you go this way, like R CMD check > > complaining that you don't use the package you're importing. Loading > > the data from a file on demand would also load the sf namespace and > > thus solve the problem. > > Workarounds for the check complaints are discussed here, among other > places: https://stackoverflow.com/a/75384338/2554330 . > > Duncan Murdoch > > ______________________________________________ > R-package-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-package-devel > -- Alexandre Courtiol, www.datazoogang.de [[alternative HTML version deleted]] ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel