|
R 操作的实体在技术上来说就是对象(object)。实数或复数向量,逻辑向量和
字符串向量之类的对象属于\原子"(atomic)型的对象,因为它们的元素都是一样的
类型或模式1。R 的对象类型包括数值型2(numeric),复数型(complex),逻辑型
(logical),字符型(character)和原味型(raw)。
向量必须保证它的所有元素是一样的模式。因此任何给定的向量必须明确属于逻
辑性,数值型,复数型,字符型或者原味型。(这里有个特定的例外就是\值"为NA 的
元素。实际上NA有好几种形式的)。注意空向量也有自己的模式。例如,空的字符串
向量将会被显示character(0) 和空的数值向量显示为numeric(0)。
R 同样操作被称为列表的对象。这种对象在R 里面是一种列表(list)模式。列
表可以为任何模式的对象的有序序列。列表被认为是一种\递归"结构而不是原子结构
因为它们的元素可以以它们各自的方式单独列出。
另外两种递归结构是函数(function)和表达式(expression)。构成R 系统的
函数对象以及其他类似的用户定义的函数对象都将在后面的内容中深入讨论。表达
式对象是R 的高级部分,不是本文档的重点,我们只是在讨论R 统计建模中的公式
(formulae)时间接地提一下。
一个对象的模式(mode)是该对象基本要素的类型。这是专门用来描述一个对
象\特征"(property)的术语。另外一个所有对象都有的特征是长度(length)。函
数mode(object) 和length(object) 可用于任何数据对象以得到其模式和长度3。
一个对象更详细的特征常常通过attributes(object) 得到,具体参见返回和设定
对象属性. 正因为这样,模式和长度又叫做一个对象的\内在属性"。
例如,如果z 是一个长为100 的复数向量,那么命令mode(z) 就会得到字符
串"complex" 而length(z) 对应的是100。
R 可以在任何需要的时候对模式进行转换(当然,有些时候没有必要)。例如
> z <- 0:9
我们可以进行如下转换
> digits <- as.character(z)
这样,digits 就是一个字符向量c("0", "1", "2", ..., "9")。我们可以再一次强
制转换,或者说模式改变,以重建数值向量:
> d <- as.integer(digits)
现在d 和z 就一样了。有一系列类似as.something() 的函数,这些函数主要用于对
象模式数据的强制转换,或者赋予某个对象一些先前没有的功能。读者可以参考不同
的帮助文档以熟悉它们。
|
|