[R] Question on S7 base classes

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Mon Jan 5 18:55:44 CET 2026


Hello,

I know nothing about S7 classes but here are two notes.
(Inline)

Às 00:35 de 05/01/2026, Bert Gunter escreveu:
> Could someone explain the following behavior to me, which I find
> inconsistent and confusing:
> 
>> inherits(1L, "integer")
> [1] TRUE    **as expected. S3 class**
>> inherits(1L, class_integer)
> [1] TRUE  ** as expected. S7 base class**
> 
>> inherits(1.0, "double")
> [1] FALSE   ** There is no "double" class in S3
>> inherits(1.0, "numeric")
> [1] TRUE ** doubles are S3 class "numeric". This is (sort of) documented**
> 
> BUT ...
>> inherits(1.0, class_double)
> [1] FALSE  ** because there is no S3 class "double" ?? **

I don't believe this is the reason why it's giving an error. The first 
example in

vignette("classes-objects", package = "s7")

defines an new class Range with two properties, start and end, both of 
class class_double.



> 
>> inherits(1.0, class_numeric)
> Error in inherits(1.2, class_numeric) :
>    'what' must be a character vector or an object with a nameOfClass() method
> **class_numeric is an S7 union, not an S7 base class ?**


Apparently, 1.0 has no S7 class (?)


library(S7)

S7_class(1.0)
#> NULL
x <- 1.0
S7_class(x)
#> NULL
nameOfClass(x)
#> NULL


This is all I can say, I have no explanation nor solution.

Hope this helps,

Rui Barradas


> 
> So if 1.0 is not class_double, what base class is it? And how should I test
> for the class of a non-integer numeric? And what is class_double then?
> 
> My apologies if this is obvious, but as I said, I find this confusing.
> 
> Best,
> Bert
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list