3.4 对象的类

R 里面的所有对象都属于一个类(class),可以通过函数 class 查看。对于简单的向量,就是对应的模式 "numeric","logical","character" 或者 "list",但是 "matrix","array","factor" 和 "data.frame" 就可能是其他值。

引入对象的类属性有利于面向对象风格的1 R 编程。比如说,如果一个对象属于 "data.frame" 类,那么它将会以一种特定的方式显示2,函数 plot() 也会以特定的方式显示它的图形。其他相关的泛型函数(generic function)3,如 summary() 等会把它作为一个参数,像对它的类一样对这个对象响应。

可以用函数 unclass() 临时去掉一个对象的类作用。 举例说,如果 winter 有一 个 "data.frame" 的类,那么

> winter

将会以和矩阵类似的数据框显示,而

> unclass(winter)

就像一个普通的列表一样打印数据。仅仅在一些非常特殊的情况下,你才需要使用这 个函数。当然,如果你是想深入学习类和泛型函数,那就可能常常用到了。

泛型函数和类将会在面向对象部分进一步讨论,不过内容比较简略。


1. 包 methods 提供了一种不同的方式调用‘正式’的或者‘S4’中的类。
2. 译者注:即响应 print函数译
3. 译者注:如果学过 Java 或者 C++ 泛型,理解会更深。顺便提醒一下,Java 从1.5 (即5.0)版本才引进泛型概念。

results matching ""

    No results matching ""