Next: , Previous: SEXPs, Up: SEXPs



1.1.1 SEXPTYPEs

目前使用的是SEXPTYPE 0:10 和 13:25。值11和12曾用于内部因子 和无序因子,但已经被淘汰了。注意, SEXPTYPE存放在用 save保存的对象中,并且对类型进行了排序, 因此,缺口很难再生1

编号 SEXPTYPE描述
0 NILSXP NULL
1 SYMSXP 符号(symbols)
2 LISTSXP 成对列表(pairlists)
3 CLOSXP 闭包(closures)
4 ENVSXP 环境(environments)
5 PROMSXP 允诺(promises)
6 LANGSXP 语言对象(language objects)
7 SPECIALSXP 专用函数(special functions)
8 BUILTINSXP 内置函数(builtin functions)
9 CHARSXP 内部字符串(internal character strings)
10 LGLSXP 逻辑向量
13 INTSXP 整数向量
14 REALSXP 数值向量
15 CPLXSXP 复数向量
16 STRSXP 字符向量
17 DOTSXP ...对象(dot-dot-dot object)
18 ANYSXP 让“any”自变量有效
19 VECSXP 列表(泛型向量)
20 EXPRSXP 表达式向量(expression vector)
21 BCODESXP 字节码(byte code)
22 EXTPTRSXP 外部指针(external pointer)
23 WEAKREFSXP 弱引用(weak reference)
24 RAWSXP 原味向量(raw vector)
25 S4SXP 不是简单类型的 S4 类

有一些类型在 R 层次上是比较常见的:作为原子类型的 LGLSXPINTSXPREALSXPCPLXSPSTRSXPRAWSXP。列表是 VECSXP而名字(同样也 称为符号)是 SYMSXP。成对列表(LISTSXP,该名字 是由于 R 在早期是一种 Scheme 类似的语言而遗留下来的)在 R 层次上已经很少见到了,但有时会作为参数列表 (argument lists)的例子而存在。字符变量是一种高效的列表,它的元素 都是一种在 R 层次很少见的变量 CHARSXP

语言对象(LANGSXP) 就是调用(call)(包括公式等)。 本质上,它们是成对列表,其中第一个元素是 一个指向被调用函数的引用(reference)2 而余下的元素是该调用的事实参数(在设定 特定参数的名字时需要使用标签(tag))。

表达式是 EXPRSXP类型:它们是对象(通常是语言)的向量, 并且通常看作 parse()的结果。

函数主要是 CLOSXPSPECIALSXPBUILTINSXP类型:其中 SEXPTYPE存放在一个整数中,它 有时会聚集在一个代码为99的假类型(psudo-type) FUNSXP中。通过 function 定义的函数是 CLOSXP类型, 它包括公式,主体部分和环境。

属于 SEXPTYPES4SXP 是从 R 2.4.0 开始引进 用空列表表示 S4 类。 它是一种不仅仅由原子向量或函数等 简单类型构成的对象。


Footnotes

[1] 译者注: 原句为“Note that the SEXPTYPEs are stored in saved objects and that the ordering of the types is used, so the gap cannot easily be reused.”

[2] 一个指向函数或符号的指针,它可以通过名字或解析语言对象 找到并给出函数。