加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

R语言中的attach和detach命令

(2016-03-22 19:40:20)
标签:

it

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

0

阅读 收藏 喜欢 打印举报/Report
前一篇:递归和迭代
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有