[R-pkg-devel] New 'extptr.as.ref' argument in identical() causing check failures
Simon Urbanek
@|mon@urb@nek @end|ng |rom R-project@org
Wed Feb 2 03:57:24 CET 2022
> On Feb 2, 2022, at 3:01 PM, Andrew Plowright <plowright.andrew using gmail.com> wrote:
>
> Hi Simon,
>
> Thanks for your reply. I guess I could use == instead. What I want is a method for checking if two S4 class objects are the same. I thought that == was strictly meant for atomic and list types?
>
identical() already checks that two objects S4 are the same - so if that's what you want, then you don't need to do anything, R provides.
I assumed you want to decide if two objects are semantically equal even if the two objects are not identical, but can still be equal - let's say because you include some additional information in the object that you want to skip when deciding equivalence. In that case == is the way to go. If your object does not have vector semantics, then you just return a scalar, e.g. let's take an example from a class you're familiar with:
WGS84 and EPSG: 4326 are the same CRS:
> st_crs("WGS84") == st_crs(4326)
[1] TRUE
but the objects are not necessarily identical:
> identical(st_crs("WGS84"), st_crs(4326))
[1] FALSE
Cheers,
Simon
> Andrew
>
> On Tue, Feb 1, 2022 at 4:45 PM Simon Urbanek <simon.urbanek using r-project.org> wrote:
> Andrew,
>
> you should not re-define identical, it is not a semantic operation and does NOT test equality. Did you mean to write a `==` method instead?
>
> Cheers,
> Simon
>
>
>
> > On Feb 2, 2022, at 9:20 AM, Andrew Plowright <plowright.andrew using gmail.com> wrote:
> >
> > Hello, I have an 'identical()' method in my library
> >
> > https://github.com/andrew-plowright/TileManager/blob/0f213a6bcce4bc4b6d0f5e6672660409e09c22c5/R/tileScheme-methods.R#L198
> >
> > I recently started getting a warning message regarding a new
> > 'extptr.as.ref' argument that was added to R-devel in December. When
> > running devtools::check_rhub() I get:
> >
> > ```
> > * checking for code/documentation mismatches ... WARNING
> > identical
> > TRUE, ignore.bytecode = TRUE, ignore.environment =
> > FALSE, ignore.srcref = TRUE, extptr.as.ref = FALSE)
> > Code: function(x, y, num.eq = TRUE, single.NA = TRUE, attrib.as.set =
> > Codoc mismatches from documentation object 'identical':
> > Docs: function(x, y, num.eq = TRUE, single.NA = TRUE, attrib.as.set =
> > TRUE, ignore.bytecode = TRUE, ignore.environment =
> > FALSE, ignore.srcref = TRUE)
> > Argument names in code not in docs:
> > extptr.as.ref
> > ```
> >
> > I tried adding the 'extptr.as.ref' argument to my documentation, but now I
> > get a new warning:
> >
> > ```
> > Documented arguments not in \usage in documentation object 'identical':
> >
> > 'extptr.as.ref'
> > Functions with \usage entries need to have the appropriate \alias
> > entries, and all their arguments documented.
> > The \usage entries must correspond to syntactically valid R code.
> > See chapter 'Writing R documentation files' in the 'Writing R
> > Extensions' manual.
> > ```
> >
> > So it seems that a warning is being generated both with or without the
> > extptr.as.ref in my documentation. Any help would be appreciated, thanks!
> >
> > Andrew
> >
> > [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-package-devel using r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-package-devel
> >
>
More information about the R-package-devel
mailing list