38294 14

[问答] 请问:在R中导入数据后,为什么先要attach(data)呢? [推广有奖]

学科带头人

83%

还不是VIP/贵宾

-

威望
0
论坛币
11846 个
通用积分
123.8486
学术水平
56 点
热心指数
84 点
信用等级
52 点
经验
28826 点
帖子
1588
精华
2
在线时间
2095 小时
注册时间
2007-4-28
最后登录
2024-11-19

楼主
区域经济爱好者 发表于 2012-6-3 02:43:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
在R中导入数据后,为什么先要attach(data)呢?
R是怎么运行数据的呢?
另外,数据的格式zoo和data.frame,什么区别?
谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:attach 导入数据 Data ATT Frame 数据

感兴趣领域——宏观经济、区域经济与技术经济

沙发
木友才 发表于 2012-6-3 05:18:35
我的理解是attach是为了将data变成R默认处理的数据
比如你导入数据后,做一个回归,没用attach:lm(data$y~data$x)
用了attach后:lm(y~x)
而且attach后,再attach一次data可以看见data里有多少个variable

至于数据格式,我觉得就是不同的后缀吧,就好像xlx和xlsx

你也可以试试R自带的search.help
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
lyleconometrics + 2 + 1 + 1 + 1 精彩帖子
zhangtao + 5 + 5 + 5 我很赞同
ltx5151 + 20 热心帮助其他会员

总评分: 经验 + 20  论坛币 + 2  学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

藤椅
马甲1号 发表于 2012-6-3 14:24:55
很多作者都建议不要用attach,而是用with函数替代,因为attach可能造成命名冲突。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
ihust + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

归欤!归欤!吾党之小子狂简,斐然成章,不知所以裁之。

板凳
区域经济爱好者 发表于 2012-6-3 17:30:31
马甲1号 发表于 2012-6-3 14:24
很多作者都建议不要用attach,而是用with函数替代,因为attach可能造成命名冲突。
谢谢点拨。
你能再具体说一下吗?
谢谢
感兴趣领域——宏观经济、区域经济与技术经济

报纸
ihust 发表于 2012-11-29 12:44:27
马甲1号 发表于 2012-6-3 14:24
很多作者都建议不要用attach,而是用with函数替代,因为attach可能造成命名冲突。
油漆法

地板
trier2006 发表于 2012-11-29 14:16:09
不必非得attach,如果你觉得重复写dat$不麻烦的话.
最好的医生是自己,最好的药物是时间……

7
毕加索的幻想 发表于 2014-5-25 22:49:50
attach是将数据添加上内存中,一般用于数据框,添加之后就可以直接提取数据框的 ,但是一般用完都会detach()删除掉
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
muweiandwu + 1 + 1 + 1 热心帮助其他会员
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

8
jbourne 发表于 2016-3-11 16:26:43
谢谢,非常有用

9
foozhencheng 学生认证  发表于 2016-7-29 19:35:19
原谅我挖个坟,最近恰好看到“Symbols and Environments”这一章。发现LS诸位大大的分析其实均可以用“环境(environment)”来解释:R中的环境有很多级,最接近用户级的是global environment(全局环境?布吉岛这么翻译对不对)。而每个函数自己内部会创建一个local environment,同是函数有它的creating environment(创建环境)和calling environment(调用环境)。好,那么说一下attach干了什么,attach负责将data frame以及list中的所有元素添加到current environment(当前环境),而一般的current environment就是global environment。二楼“木友才”大大举的例子就很好的说明了这一点,数据data自己也有一个local environment,其中有x有y。但是如果不用attach的话,做线性回归的时候,lm函数的local environment中没有x和y,那怎么办?只能用通常从list中提取行or列的方法(按照名称提取),即data$x与data$y。但是attach可以将data中的object都加载进“当前环境”,因此调用lm函数的时候,data中的x和y都已经加载到了当前环境,因此可以直接写lm(y~x)。而问题也由此而生,假如有两个data,data1中有x、y,data2中也是x、y,那么把它们都加载到当前环境中就容易乱套。在调用时就不知道x和y指的是哪个data中的x和y。这就是为什么3L的“马甲1号”大大建议不要用attach,而是用with。用with的话就不会有这个问题。
已有 3 人评分学术水平 热心指数 信用等级 收起 理由
katherineqq + 5 + 5 + 5 精彩帖子
LeeHyeYoung + 2 + 2 + 2 精彩帖子
马甲1号 + 1 精彩帖子

总评分: 学术水平 + 8  热心指数 + 7  信用等级 + 7   查看全部评分

10
代诗博 发表于 2016-11-20 10:13:40
foozhencheng 发表于 2016-7-29 19:35
原谅我挖个坟,最近恰好看到“Symbols and Environments”这一章。发现LS诸位大大的分析其实均可以用“环境 ...
你看的书的书名叫什么,感觉讲得好透彻

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 05:05