为什么使用“detach()”函数的主要目的是什么?

时间:2013-02-19 20:29:47

标签: r

我们在课堂上看到了以下R代码:

attach(LifeCycleSavings)
boxplot(sr, main = "Box Plot of Savings Ratio")
detach()

但是,为什么我们需要在这里使用“detach()”?我键入了“LifeCycleSavings”,仍然输出如下:

> LifeCycleSavings
                  sr pop15 pop75     dpi  ddpi
Australia      11.43 29.35  2.87 2329.68  2.87
Austria        12.07 23.32  4.41 1507.99  3.93
Belgium        13.17 23.80  4.43 2108.47  3.82

文件“LifeCycleSavings”没有脱离。

1 个答案:

答案 0 :(得分:7)

要回答您的具体问题,在此上下文中detach正在从搜索路径中删除该数据框。这意味着您不能再从该数据框中引用变量名称:

attach(LifeCycleSavings)
> sr
 [1] 11.43 12.07 13.17  5.75 12.88  8.79  0.60 11.90  4.98 10.78 16.85  3.59 11.24 12.64 12.55 10.67  3.01
[18]  7.70  1.27  9.00 11.34 14.28 21.10  3.98 10.35 15.48 10.25 14.65 10.67  7.30  4.44  2.02 12.70 12.78
[35] 12.49 11.14 13.30 11.77  6.86 14.13  5.13  2.81  7.81  7.56  9.22 18.56  7.72  9.24  8.89  4.71
> detach(LifeCycleSavings)
> sr
Error: object 'sr' not found

所以,此时如果我们想要使用sr,我们需要输入LifeCycleSavings$sr才能告诉R在哪里看。

正如Andrie所说,许多人对这种attachdetach的使用感到不满(尽管detach有时也用于从搜索路径中删除包)因为它确实可以弄乱你的搜索路径。