S 有一个叫 `搜索路径'(search path)的概念:一个`变量'的查找会通向(
可能通过一系列的框架)`会话框架',`工作目录',然后是搜索路径。
搜索路径是一系列含有系统函数的数据库
(如search()返回的结果)。其中,系统函数在路径末端不是必须的,因为
默认状态下,包的等价物会被加载末端。
R在搜索路径上和S有不同之处的。R的搜索路径
(也是通过search()返回的)先包括全局环境(就是用户工作空间)
,随后是被绑定的环境,最后是基础环境。注意,
和 S 不同的是,它不可能在工作空间之前或基础环境之后
绑定环境的。
但是,变量查找的概念在R里面更加通用,因此,本小节的标题里面使用复数 1。 既然环境有闭包,从任何环境开始,通过查看它的框架, 它的闭包等的框架创建搜索路径。 由于死循环式不允许的,这个过程最终都会停掉的: 在 R 2.2.0 之前,它总是在基础环境时停掉,但现在 它既可以在基础环境也可以在空环境时停掉。 (总是在空环境时停掉在概念上比较简单,但在基础环境时候 停掉则性能上比较优化的策略)。 因此`搜索路径'描述的是搜索达到全局环境时采用的环境链表。