Package: S7 0.2.2.9000

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.2.9000.tar.gz
S7_0.2.2.9000.zip(r-4.7)S7_0.2.2.9000.zip(r-4.6)S7_0.2.2.9000.zip(r-4.5)
S7_0.2.2.9000.tgz(r-4.6-x86_64)S7_0.2.2.9000.tgz(r-4.6-arm64)S7_0.2.2.9000.tgz(r-4.5-x86_64)S7_0.2.2.9000.tgz(r-4.5-arm64)
S7_0.2.2.9000.tar.gz(r-4.7-arm64)S7_0.2.2.9000.tar.gz(r-4.7-x86_64)S7_0.2.2.9000.tar.gz(r-4.6-arm64)S7_0.2.2.9000.tar.gz(r-4.6-x86_64)
S7_0.2.2.9000.tgz(r-4.6-emscripten)
manual.pdf |manual.html
card.svg |card.png
S7/json (API)
NEWS

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

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

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

On CRAN:

Conda:

18.96 score 488 stars 8.8k packages 580 scripts 1.4M downloads 62 exports 0 dependencies

Last updated from:24d3abc34c. Checks:9 OK, 4 NOTE. Indexed: yes.

TargetResultTimeFilesSyslog
linux-devel-arm64OK178
linux-devel-x86_64OK140
source / vignettesOK176
linux-release-arm64OK124
linux-release-x86_64OK142
macos-release-arm64NOTE125
macos-release-x86_64NOTE154
macos-oldrel-arm64OK99
macos-oldrel-x86_64OK177
windows-develNOTE111
windows-releaseNOTE196
windows-oldrelOK115
wasm-releaseOK95

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_infoprop_namesprop<-propsprops<-S4_registerS7_classS7_class_descS7_dataS7_data<-S7_dispatchS7_inheritsS7_objectS7_on_buildS7_on_loadset_propssupervalid_eventuallyvalid_implicitlyvalidate

Dependencies:

Classes and objects

Rendered fromclasses-objects.Rmdusingknitr::rmarkdownon Jun 12 2026.

Last update: 2026-06-11
Started: 2023-05-08

Compatibility with S3 and S4

Rendered fromcompatibility.Rmdusingknitr::rmarkdownon Jun 12 2026.

Last update: 2026-06-11
Started: 2022-03-18

Generics and methods

Rendered fromgenerics-methods.Rmdusingknitr::rmarkdownon Jun 12 2026.

Last update: 2026-06-11
Started: 2023-05-08

Motivation for S7

Rendered frommotivation.Rmdusingknitr::rmarkdownon Jun 12 2026.

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

Performance

Rendered fromperformance.Rmdusingknitr::rmarkdownon Jun 12 2026.

Last update: 2026-06-11
Started: 2021-03-17

S7 basics

Rendered fromS7.Rmdusingknitr::rmarkdownon Jun 12 2026.

Last update: 2026-06-11
Started: 2023-02-13

Using S7 in a package

Rendered frompackages.Rmdusingknitr::rmarkdownon Jun 12 2026.

Last update: 2026-06-11
Started: 2023-07-18

Readme and manuals

Help Manual

Help pageTopics
Create and name an object in one step:=
S7 wrappers for base typesbase_classes class_atomic class_call class_character class_complex class_double 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
Use an environment as the base type of an S7 classclass_environment
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<-
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_info prop_names
Get/set multiple propertiesprops props<- set_props
Register an S7 or S3 class with S4S4_register
Retrieve the class specification of an objectS7_class
Format a class specification as a stringS7_class_desc
Get/set underlying "base" dataS7_data S7_data<-
Does this object inherit from a class?check_is_S7 S7_inherits
Package hooks for S7 methodsmethods_register S7_on_build S7_on_load
Force method dispatch to use a superclasssuper
Validate an S7 objectvalidate valid_eventually valid_implicitly