|
attach() 和detach()
用$ 符号访问对象不是非常的方便,如accountants$statef。一个非常有用的工
具将会使列表或者数据框的分量可以通过它们的名字直接调用。而且这种调用是暂时
性的,没有必要每次都显式的引用列表名字。
函数attach() 除了可以用目录路径作为参数,也可以使用数据框。假定数据
框lentils 有三个变量lentils$u, lentils$v, lentils$w,那么
> attach(lentils)
将把数据框绑定在搜索路径的位置2(position 2)上。如果位置1没有变量u, v 或w,
那么u, v 和w 直接在数据框中访问。因此,下面的命令
> u <- v+w
实际上没有替换数据框中的变量u,而是被处于搜索路径位置1工作空间中的变量u 所
屏蔽4。为了真正改变数据框中的数据,最简单的办法还是使用$ 符号:
> lentils$u <- v+w
但是新的分量u 是不可见的,直到数据框绑定去除和重新绑定。
去除一个数据框的绑定,可以使用
> detach()
确切地说,该命令去掉了搜索路径中与位置2的绑定。此时,u, v 和w 将不再可
见,但可以用lentils$u 类似的命令来查看这些变量。如果实体所处的环境位置值大
于2,则可以通过把位置值直接传给detach的办法实现绑定去除,不过,最为安全的
办法是直接使用名字指明位置,如detach(lentils) 和detach("lentils")
注意:最新版本的R 里面,列表和数据框只能在位置2 或更高的位置层
次绑定。这样就不可以直接对绑定的列表和数据框赋值(因此,在一定程度
上它们是静态的)。
|
|