在 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 类的区别。

​​泛型函数和方法分派​​

​​内置类和方法​​

​​为现有类定义泛型函数​​

​​定义新类并创建对象​​