S3 对象

时间:2022-04-27 08:21:26

在 R 中,S3 对象系统是一个简单且宽松的面向对象系统。每个基本对象的类型都有一
个 S3 类名称。例如:integer、numeric、character、logical、list 和 data.frame 等都属于 S3 类。
举个例子,vec1 的类型是 double,意味着 vec1 的内部类型或者存储模式是双精度
浮点型数字。但是,它的 S3 类却是 numeric:
vec1 <- c(1, 2, 3)
typeof(vec1)
## [1] "double"
class(vec1)
## [1] "numeric"
data1 的类型是 list,意味着 data1 的内部类型或存储模式是列表,但是,它
的 S3 类却是 data.frame:
data1 <- data.frame(x =1:3, y = rnorm(3))
typeof(data1)
## [1] "list"
class(data1)
## [1] "data.frame"
接下来,我们将会解释一个对象的内部类型和它的 S3 类的区别。

泛型函数和方法分派

内置类和方法

为现有类定义泛型函数

定义新类并创建对象