Package: S7 0.2.0

Hadley Wickham

S7: An Object Oriented System Meant to Become a Successor to S3 and S4

A new object oriented programming system designed to be a successor to S3 and S4. It includes formal class, generic, and method specification, and a limited form of multiple dispatch. It has been designed and implemented collaboratively by the R Consortium Object-Oriented Programming Working Group, which includes representatives from R-Core, 'Bioconductor', 'Posit'/'tidyverse', and the wider R community.

Authors:Object-Oriented Programming Working Group [cph], Davis Vaughan [aut], Jim Hester [aut], Tomasz Kalinowski [aut], Will Landau [aut], Michael Lawrence [aut], Martin Maechler [aut], Luke Tierney [aut], Hadley Wickham [aut, cre]

S7_0.2.0.tar.gz
S7_0.2.0.zip(r-4.6)S7_0.2.0.zip(r-4.5)S7_0.2.0.zip(r-4.4)
S7_0.2.0.tgz(r-4.5-x86_64)S7_0.2.0.tgz(r-4.5-arm64)S7_0.2.0.tgz(r-4.4-x86_64)S7_0.2.0.tgz(r-4.4-arm64)
S7_0.2.0.tar.gz(r-4.6-arm64)S7_0.2.0.tar.gz(r-4.6-x86_64)S7_0.2.0.tar.gz(r-4.5-arm64)S7_0.2.0.tar.gz(r-4.5-x86_64)
S7_0.2.0.tgz(r-4.5-emscripten)
S7.pdf |S7.html
S7/json (API)
NEWS

# Install 'S7' in R:
install.packages('S7', repos = c('https://staging.r-multiverse.org', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/rconsortium/s7/issues

Pkgdown/docs site:https://rconsortium.github.io

On CRAN:

Conda:

16.41 score 470 stars 8.1k packages 1.3M downloads 57 exports 0 dependencies

Last updated from:860394b610 (on v0.2.0). Checks:9 OK, 4 NOTE. Indexed: no.

TargetResultTotal timeArtifact
linux-devel-arm64OK378
linux-devel-x86_64OK410
source / vignettesOK244
linux-release-arm64OK112
linux-release-x86_64OK126
macos-release-arm64NOTE106
macos-release-x86_64NOTE186
macos-oldrel-arm64OK94
macos-oldrel-x86_64OK306
windows-develNOTE496
windows-releaseNOTE92
windows-oldrelOK113
wasm-releaseOK89

Exports:as_classcheck_is_S7class_anyclass_atomicclass_callclass_characterclass_complexclass_data.frameclass_Dateclass_doubleclass_environmentclass_expressionclass_factorclass_formulaclass_functionclass_integerclass_languageclass_listclass_logicalclass_missingclass_nameclass_numericclass_POSIXctclass_POSIXltclass_POSIXtclass_rawclass_vectorconvertmethodmethod_explainmethod<-methods_registernew_classnew_external_genericnew_genericnew_objectnew_propertynew_S3_classnew_unionpropprop_existsprop_namesprop<-propsprops<-S4_registerS7_classS7_dataS7_data<-S7_dispatchS7_inheritsS7_objectset_propssupervalid_eventuallyvalid_implicitlyvalidate

Dependencies:

Classes and objects

Rendered fromclasses-objects.Rmdusingknitr::rmarkdownon Nov 02 2025.

Last update: 2024-11-04
Started: 2023-05-08

Compatibility with S3 and S4

Rendered fromcompatibility.Rmdusingknitr::rmarkdownon Nov 02 2025.

Last update: 2024-11-04
Started: 2022-03-18

Generics and methods

Rendered fromgenerics-methods.Rmdusingknitr::rmarkdownon Nov 02 2025.

Last update: 2024-11-04
Started: 2023-05-08

Motivation for S7

Rendered frommotivation.Rmdusingknitr::rmarkdownon Nov 02 2025.

Last update: 2023-11-23
Started: 2023-07-10

Performance

Rendered fromperformance.Rmdusingknitr::rmarkdownon Nov 02 2025.

Last update: 2024-11-04
Started: 2021-03-17

S7 basics

Rendered fromS7.Rmdusingknitr::rmarkdownon Nov 02 2025.

Last update: 2024-11-04
Started: 2023-02-13

Using S7 in a package

Rendered frompackages.Rmdusingknitr::rmarkdownon Nov 02 2025.

Last update: 2023-11-23
Started: 2023-07-18

Readme and manuals

Help Manual

Help pageTopics
S7 wrappers for base typesbase_classes class_atomic class_call class_character class_complex class_double class_environment class_expression class_function class_integer class_language class_list class_logical class_name class_numeric class_raw class_vector
S7 wrappers for key S3 classesbase_s3_classes class_data.frame class_Date class_factor class_formula class_POSIXct class_POSIXlt class_POSIXt
Dispatch on any classclass_any
Dispatch on a missing argumentclass_missing
Convert an object from one type to anotherconvert
Find a method for an S7 genericmethod
Explain method dispatchmethod_explain
Register an S7 method for a genericmethod<-
Register methods in a packagemethods_register
Define a new S7 classnew_class new_object
Generics in other packagesnew_external_generic
Define a new genericnew_generic S7_dispatch
Define a new propertynew_property
Declare an S3 classnew_S3_class
Define a class unionnew_union
Get/set a property@ @.S7_object prop prop<-
Property introspectionprop_exists prop_names
Get/set multiple propertiesprops props<- set_props
Register an S7 class with S4S4_register
Retrieve the S7 class of an objectS7_class
Get/set underlying "base" dataS7_data S7_data<-
Does this object inherit from an S7 class?check_is_S7 S7_inherits
Force method dispatch to use a superclasssuper
Validate an S7 objectvalidate valid_eventually valid_implicitly