Package: S7 0.2.0.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.0.9000.tar.gz
S7_0.2.0.9000.zip(r-4.5)S7_0.2.0.9000.zip(r-4.4)S7_0.2.0.9000.zip(r-4.3)
S7_0.2.0.9000.tgz(r-4.4-x86_64)S7_0.2.0.9000.tgz(r-4.4-arm64)S7_0.2.0.9000.tgz(r-4.3-x86_64)S7_0.2.0.9000.tgz(r-4.3-arm64)
S7_0.2.0.9000.tar.gz(r-4.5-noble)S7_0.2.0.9000.tar.gz(r-4.4-noble)
S7_0.2.0.9000.tgz(r-4.4-emscripten)S7_0.2.0.9000.tgz(r-4.3-emscripten)
S7.pdf |S7.html
S7/json (API)
NEWS

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

Peer review:

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

On CRAN:

12.53 score 408 stars 11 packages 73 scripts 2.5k downloads 57 exports 0 dependencies

Last updated 2 days agofrom:3a18a5603a. Checks:OK: 9. Indexed: yes.

TargetResultDate
Doc / VignettesOKNov 21 2024
R-4.5-win-x86_64OKNov 21 2024
R-4.5-linux-x86_64OKNov 21 2024
R-4.4-win-x86_64OKNov 21 2024
R-4.4-mac-x86_64OKNov 21 2024
R-4.4-mac-aarch64OKNov 21 2024
R-4.3-win-x86_64OKNov 21 2024
R-4.3-mac-x86_64OKNov 21 2024
R-4.3-mac-aarch64OKNov 21 2024

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 21 2024.

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

Compatibility with S3 and S4

Rendered fromcompatibility.Rmdusingknitr::rmarkdownon Nov 21 2024.

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

Generics and methods

Rendered fromgenerics-methods.Rmdusingknitr::rmarkdownon Nov 21 2024.

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

Motivation for S7

Rendered frommotivation.Rmdusingknitr::rmarkdownon Nov 21 2024.

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

Performance

Rendered fromperformance.Rmdusingknitr::rmarkdownon Nov 21 2024.

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

S7 basics

Rendered fromS7.Rmdusingknitr::rmarkdownon Nov 21 2024.

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

Using S7 in a package

Rendered frompackages.Rmdusingknitr::rmarkdownon Nov 21 2024.

Last update: 2024-11-19
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