楼主: skyer_117
12389 4

请教一下R中attach和detach命令 [推广有奖]

  • 0关注
  • 1粉丝

本科生

54%

还不是VIP/贵宾

-

威望
0
论坛币
1177 个
通用积分
0
学术水平
2 点
热心指数
3 点
信用等级
0 点
经验
2582 点
帖子
109
精华
0
在线时间
81 小时
注册时间
2007-6-12
最后登录
2017-6-15

楼主
skyer_117 发表于 2009-7-18 11:12:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
看help和一些基本书籍中的介绍,看的晕晕乎乎,就是意识到使用attach(xxx)之后,xxx会出现在search()中的第二个位置,说这样的操作不会影响原先的dataframe里的数据(如果xxx是个df),请高手讲解下,这些东西实在没弄明白……
另外R导论(introduction的中文版)中后面的演示绘画有如下内容:
dummy <- data.frame(x=x, y= x + rnorm(x)*w)
dummy
创建一个由x 和y构成的双列数据框,查看它们
attach(dummy)
让数据框中的列项可以像一般的变量那样使用
上面这句话话什么意思……什么叫像一般变量使用,是说这里的搜索空间只是在这个dummy里了,然后引用他们的列就不用dummy$xxx这样的形式了?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:attach detach ATT ETA introduction 请教 命令 attach detach

沙发
uc_sjtu 在职认证  发表于 2009-7-18 11:21:55
就是以后调用该数据不用输入dataframe的名字了吧,比如以前是dataframe$gdp,现在gdp就能调用了

藤椅
snakepointid 发表于 2015-6-29 15:50:20
attach(df)就是使电脑知道你要分析的对象是这个数据框,那么这个数据框里面的变量就算有跟别的数据框重名的,电脑也知道你是在调用它的变量。同时你创建变量,电脑也知道你是在给这个数据框创建变量。

板凳
亚米UM 发表于 2015-6-29 19:52:48
个人理解:
attach()相当于把数据调入到内存中,作为默认的处理数据,比如现在要对salary中的y 和x1 x2作回归,那么可以
lm(y~x1+x2,data=salary)
如果之前谢了attach(salary),则可以简写为lm(y~x1+x2), 而不再用去说明其中的变量来自于那个数据集了

报纸
淘宝网橙迷橙橙 发表于 2015-6-29 22:54:19
这个,需了解全局变量和局域变量的概念。
当输入一个变量名时,R会在最上一级的路径中(一般是全局变量)搜索有没有这个变量,如没有,则给出出错信息,因为它没有在全局环境中搜索有这个变量。
数据框可以看成是一个封闭了其各列变量的局域环境,所以单输入一个数据框的列名,在全局环境中是搜不到这个列名的(因为被数据框这个封闭的局域环境阻隔了)。如要搜索到需要的列值,则要明确给出搜索路径,即dataframe$variable的形式。
但是每次都这样子给出完整路径很烦,所以为方便起见,需要用attach将数据框中的列变量释放为全局变量,这样在全局环境中就可以自由搜索了。但是这会带来另外一个问题,当全局环境中本来有一个同名的变量时,其会被新加入的数据框列变量屏蔽掉,造成意想不到的后果,所以在编程时一般不用attach.
至于detach,则是反向操作,又把封闭环境中的变量中从全局环境中释放掉,使其还原为局域变量状态。
attach一般须与detach对应。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-19 07:42