R语言入门——一文讲明白attach与detach
目录
- 引言
- 正文
- 构造数据
- 索引
- attach()
- detach
- 总结
引言
数据是我们在使用R语言做统计和数据分析相关的工作经常用到的对象。但是当数据太多的时候,我们会构造数据框
、列表
、数组
和矩阵
等各种数据类型。但是数据每一列的索引就成了问题。尤其是在大量的重复性的调用时。这时候我们经常会使用attach
与detach
这两个函数来使我们的代码变得更简洁。本文就这两个函数进行讲解。
正文
构造数据
> rm(list=ls(all=TRUE))
> (Data <- data.frame(a = 1:5, b = 6:10))a b
1 1 6
2 2 7
3 3 8
4 4 9
5 5 10
> (a <- 11:15)
[1] 11 12 13 14 15
> (c <- 16:20)
[1] 16 17 18 19 20
命令rm(list=ls(all=TRUE))
用来删除R语言工作空间中的现有变量。我们构造的数据集合有数据框Data
:含有变量a
,b
。两个全局变量:向量a
,向量c
。
索引
正常的取用Data
的数据会使用下面的命令(使用$
或者data[i, j]
的形式):
> Data$a
[1] 1 2 3 4 5
> Data[,1]
[1] 1 2 3 4 5
> Data$b
[1] 6 7 8 9 10
> Data[,2]
[1] 6 7 8 9 10
attach()
下面我们开始使用attach
函数,进行索引。
> b
错误: 找不到对象'b'
> attach(Data)
The following object is masked _by_ .GlobalEnv:a
> a
[1] 11 12 13 14 15
> b
[1] 6 7 8 9 10
我们看到使用attach
时,The following object is masked _by_ .GlobalEnv:a
被提示。a
这个变量除了是Data
数据集的第一列元素,我们还在全局的环境中定义了11 12 13 14 15
给a
这个向量。而后面输出a
变量的值时,输出的时全局变量的值。再看b
这个向量,在attach
之前没有这个变量,但是在之后出现了b
这个变量并且输出的是Data
数据集中的第二列。
但是我们这时候想的到Data
中a
的数据,而不是全局中的a
怎么办呢。直接Data$a
就可以了。
> a
[1] 11 12 13 14 15
> Data$a
[1] 1 2 3 4 5
detach
在attach
之后一定不能忘记detach
,这样会避免不必要的变量重名。使得一切回复到attach
之前。
> detach(Data)
> a
[1] 11 12 13 14 15
> b
错误: 找不到对象'b'
> Data$a
[1] 1 2 3 4 5
> Data$b
[1] 6 7 8 9 10
> c
[1] 16 17 18 19 20
总结
上面就是attach
与detach
的具体用法。建议不熟悉R语言的初学者谨慎使用。最后希望可以帮助大家学习R语言。水平有限发现错误还望及时评论区指正,您的意见和批评是我不断前进的动力。
R语言入门——一文讲明白attach与detach相关推荐
- r语言x c(-1 -2),【软件】R语言入门之向量
"R语言入门开篇,向量(vector)相关知识的介绍" R语言是一款优秀统计学编程语言,本文介绍R语言的几个重要命令,以及R语言中非常重要的一种数据结构-向量(Vector)的相关 ...
- R语言入门——常用函数50个
R语言函数入门50个基本函数 0引言 1.入门准备操作及函数 1.1R版本介绍以及IDE的选择 1.2IDE及其常用的快捷键 2.空间操作以及纠错函数 2.1 ? .??.help.demo.exam ...
- R语言学堂推文索引-2022年12月
专注系列化.高质量的R语言教程 推文索引 | 联系小编 | 付费合集 更新时间: 2022.12.12 0 前言 1 数据处理通识专辑 1.1 R语言基础与base-R 1.2 数据处理与tidy-R ...
- R语言入门1---R语言介绍以及学前注意事项
R语言是从贝尔实验室的S语言演变而来的,基于S语言开发的商业软件Splus,可以方便的编写函数.建立模型,具有良好的扩展性,取得了巨大成功.1995年由新西兰Auckland大学统计系的Robert ...
- R语言学堂推文索引-2022年11月
专注系列化.高质量的R语言教程 推文索引 | 联系小编 | 付费合集 更新时间: 2022.11.22 0 前言 1 数据处理通识专辑 1.1 R语言基础与base-R 1.2 数据处理与tidy-R ...
- R语言入门——你不知到的哪些黑科技(这里面的函数你用过一个算我输)
文档再短再要有目录不是 00引言 1.() 2."运算符号"(,) 3.总结 00引言 在R语言入门中你会遇到各种处理数据建立模型的函数,今天介绍一下在平时的编程中一直被大家忽略的 ...
- 【万字长文】R语言入门学习路线与资源汇总
本篇推文就不介绍为什么需要学R了,你能打开这篇文章,说明你有学习R的想法或者正在学习R的路上. 今天简单介绍下R语言的学习路线以及R学习资源汇总. 下面涉及到的R语言书籍我打包了PDF文件,有需要的在 ...
- <<R语言入门与实践>>读书笔记
这是一个java小码农的跨界试探,如果你对R感兴趣可以买本R语言入门与实践,因为这里只记录了本人觉得有用的基本知识点.如果你只是看个乐呵,祝你有所收获. 序 数据分析具备三个属性 可再现性 自动化 沟 ...
- R语言入门4---R语言流程控制
流程控制语句在任何语言中都是非常重要的,通过流程控制语句编程者能够根据业务逻辑在程序中设计合理的循环.分支,实现程序各种各样强大的功能.一般实现任一算法的控制结构都可以分为顺序结构.分支结构.循环 ...
- R语言入门——猜数小游戏
R语言入门--猜数小游戏 题目介绍 使用代码(2种方法) 运行结果 题目介绍 设计一个猜数字的游戏:计算机随机生成一个1~100 之间的整数,然后由用户猜测所产生的随机数.根据用户猜测的情况给出不同提 ...
最新文章
- 解决Office互操作错误检索COML类工厂中 CLSID为 {xxx}的组件时失败,原因是出现以下错误: 80070005...
- [SinGuLaRiTy] 复习模板-搜索
- C++ 中的 IO流
- MyEclipse开发教程:使用REST Web Services管理JPA实体(四)
- Sparkmllib scala线性回归
- java多线程的实现方式_Java 多线程(一)——多线程的实现方式
- (Tool)Symantec Northon和eset northon哪个好?
- android retrofit2.0 rxjava2,Android - 网络请求之 Retrofit2 + RxJava
- 【Servlet】Cookie会话跟踪技术
- enum java 比较_Kotlin与Java比较:枚举类
- 【李宏毅2020 ML/DL】P60-61 Unsupervised Learning - Deep Generative Model
- 在生产中使用Istio,我们学到了什么?
- [置顶]c# 设计模式(2)结构型
- 彻底拿下QSPI双闪存W25Q256| STM32H750| QSPI 双FLASH |cubeIDE |下载算法(一)
- 苹果笔记本装Windows系统
- Facebook全球争夺工智能人才,看上了中国高校
- 大学生无线耳机怎么选?内行推荐四款高性价比蓝牙耳机
- 异常处理_MacM1 python-akshare导入报错
- 可等待计时器与用户计时器
- 单词首字母大写,将每个单词的首字母改为大写后输出
热门文章
- warning: array subscript has type ‘char‘
- C# Control.Refresh的解释是什么意思?
- 中望cad2014 专业破解版
- Mongodb释放内存
- linux vim下自动补全,linux-python在vim下的自动补全功能
- 阿里云主体变更和备案过程
- 【转】傅里叶分析之掐死教程(完整版)
- Excel无法打开文件xx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏解决办法
- 第二十二章 MySQL有哪些“饮鸩止渴”提高性能的方法?
- 禁止使用计算机热点,设置Windows 10 禁止自动连接Wifi热点