[R-pkg-devel] S3 is.unsorted registration
Hugh Parsonage
hugh@p@r@on@ge @end|ng |rom gm@||@com
Thu Sep 9 18:23:36 CEST 2021
I would like to register an S3 method for `is.unsorted` for my
package's class "factor256" but I'm having trouble honouring the
`strictly` argument. I've defined
is.unsorted.factor256 <- function(x, na.rm = FALSE, strictly = FALSE) {
strictly
}
i.e. the class is sorted iff strictly = TRUE
However, the strictly argument appears to be ignored
x <- integer(2)
class(x) <- "factor256"
is.unsorted(x) # FALSE [expected]
is.unsorted(x, strictly = TRUE) # FALSE [unexpected]
The method is definitely being dispatched as when I change the function to
is.unsorted.factor256 <- function(x, na.rm = FALSE, strictly = FALSE) {
cat("dispatching\n")
strictly
}
I see the dispatch:
is.unsorted(ff, strictly = T)
#> dispatching
#> [1] FALSE
and
> methods("is.unsorted")
[1] is.unsorted.factor256
see '?methods' for accessing help and source code
I note that if I omit the na.rm = argument I will get the intended
result (I was drawn to the solution by noting the .Internal call has
omitted it) but I'm wondering whether this is correct.
Best,
Hugh Parsonage.
More information about the R-package-devel
mailing list