R 的常用命令|学习笔记

简介: 快速学习 R 的常用命令。

开发者学堂课程【R 语言编程基础 R 的常用命令】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/564/detail/7717


R 的常用命令

 

1、通过输入 ls()命令列举当前内存中的对象现在内存中没有任何的对象比如创建对象

data <-c(1,2,4,5)

Strings<-’’I like R’’

这样就创建了两个数据对象现在再输入 ls()就可以看到在 R 内存中的两个对象

"data" " strings"

如果不需要其中一个对象可以通过删除它释放 R 的内存空间删除命令是 rm(),比如把 data 删除掉直接输入rm(data)进行删除再输入 ls()查询当前 R 内存中有那些对象data 被删除只剩 strings 一个对象

" strings"

2、注意在创建 R 对象时,R 当中的名称是区分大小写的比如小写的 a 赋值为1,大写的 A 赋值为2,这两个都是不同的变量再输入 ls()查询有三个不同的对象在 R 的内存中

a<-1

A<-2

Ls()

" a "  "A"  "strings"

再创建一个向量

V <- c(4, 7,23, 56,32)

3、创建向量后有很多针对向量进行的操作和处理的函数首先打开第一个 length求向量 v 的长度在创建向量v时给它赋了五个数值也就是向量 v 的长度是5。

Lengthv

5

4、针对向量 v 还可以用 modemodev)主要是进行查看数据 v 的类型刚才创建时赋的是数字因此它应该显示的是数字的数据类型,"numeric",前面也介绍向量了数据类型它存储的数据都是同一种模式数值型或字符串型再创建一个向量用 c 进行表示加字符串 rc<-c(1,2,3,’’r’’),当创建这么一个向量时r 会把里面的数字类型强行转化成字符串类型也就是1,2,3在 r 中不再被看作成是数字而是看作与 r 相同字符串的类型

Modec

"character"

C

"1" "2" "3" "r"

1,2,3强制被转化成字符型在创建向量之后如果对向量中某一个元素进行更改时使用方括号的形式对其进行查找进行其他字段的变更比如更改 c 向量中的第二个元素把这个元素赋值成另外一个字符串test再查看c第二个元素就变成 test

c[2]<-‘’test‘’

C

‘’1‘’ ‘’test‘’ ‘’3‘’ ‘’r''

5、最强大的功能展示之一就是函数的向量化也就是当函数进行处理时这个函数可以直接对向量中每一个元素进行操作比如建立向量 x给它进行赋值

X<-c(4,8,9, 15,24)

如果对 x 中所有元素求平方根

Y <-sqrt (x)

2.000000  2.828427  3. 000000  3.872983  4.898979

可以得到所有元素平方根的求值结果也可以对向量进行基本的加减乘除的运算比如 x 和 y 的求和

Z <-X+y

6.00000  10.82843  12. 00000  18.87298  28.89898

这个值就是将 x 中的各个元素和 y 中各个对应位置的元素进行相加得到各个位置相加的元素之和

6、R 中如果遇到两个向量长度不一样时向量的加减运算应该如何进行操作这时 R 会使用一个循环的规则也就是它会使较短的向量不断重复其中一个

7、举例给 x 和 y 赋值为简单的数字

X<-c(1,1,1, 1, 1,1)

У<-c(2,2,2)

如果两个向量长度不一样会重复比较短的向量元素也就是当用z执行获取 x 和 y 相加的结果也就是它会把 y 进行循环赋值会形成一个有6个数字的向量就是2,2,2后面再32,获得的结果就是63,这就是两个不同长度的向量进行的运算的情况

z<-x+y

Z

3 3 3 3 3

8、很多时候创建向量时是逐个数字去输入有很多情况需要生成不同序列的方法比如创建1-1000所有指数的向量可以输入x<-1:1000,这样就生成了一个向量这个向量中有1000个数字分别是1,2,31000,lengthx),1000,x

以下就是生成的序列

image.png

也可以使用 seq 生成实数序列用 x 存储这个序列x<-seq,这个函数的格式比如它的起点从1序列一直到10,希望它的增量为2,也就是生成的序列从1开始每一次加2获得向量的序列结果

x<-seq(1,10,2)

X

1 3 5 7 9

9、有关 seq 得到序列还有很多方式比如使用 from to 等等其他的序列方式可以参考帮助文件它生成序列 R 中还有一个 rep,它是采用一种循环或重复的方式比如还是用 x 接收结果

x<-rep(5,10)

这个函数的意思是希望生成一个向量向量的元素是5,而且让它循环10次进行生成循环生成105的向量

x

5 5 5 5 5 5 5 5 5 5

10、也可以采用 rep(1:3,3),13的序列,3次循环这种形式得到结果

rep(1:3,3)

1 2 3 1 2 3 1 2 3

11、R 中还有很多可以根据不同的概率密度函数生成随机序列的函数比如 rnorm这个函数生成10个服从均值为0,标准差为1正态分布的随机向量

Rnorm(10)

[1] 1.176555391 0.117578673 -0.001891701 -0.621917268 -0.301895078 -0.201588205 2.903450724 0.511170206

[9] 0.460424768  -1.275409861

生成随机向量时也可以对其进行指定因为它默认是生成平均值为0,标准差为1,比如生成6个正态分布的随机数希望它的均值是6,标准差是2,这样就生成服从正态分布的随机的数值

rnorm(6, mean=6,sd=2)

2.857149  5.234534  6.819100  5.283175  2.946540 7. 915748

12、R 针对不同的数据类型操作很灵活比如创建一个向量向量是0,-3,4,-1,45,98,-12,创建这么一个 x向量

x<-c( 0,-3,4,-1,45,98,-12)

把 x 中大于0的向量取出来时可以使用中括号以及元素的位置对其进行定位但是 R 中有非常灵活的一种方式使用中括号希望 x 大于0,它会把 x 向量中大于04,45以及98提取出来

x>[x>0]

4,45,98

13、比如进行一些更复杂的选择,x[x<=-2|x>5],得到-3 45 98 -12,这个列子介绍了或运算符相对于 R 中也有余余使用的字符是&,用这个字符自己去对 R 中的向量操作实际体验R 中的具体应用过程中会经常碰到这样的情况比如这个向量中有7个元素可能只需要取其中6个元素相当于把其中一个元素排除掉比如采取一种循环的方式先取第一个到第四个元素再取第六第七个元素实际上 R 中有一个很简便的方式不想取 x 中第五个值也就是45,可以用x[-5],这样就把第五个值排除掉只取其他的6位元素

x[-5]

0 -3 4 -1 98 -12

没有第五个值第五个元素是45。

14、比如不想取前面三个元素排除了0,-34

x[-(1:3) ]

-1 45 98 -12

相关文章
|
机器学习/深度学习 物联网 开发者
秒级生图,SDXL-turbo、LCM-SDXL魔搭社区最佳实践
最近一个月,快速生图成为文生图领域的热点,其中比较典型的两种方式的代表模型分别为SDXL-turbo 和 LCM-SDXL。
|
人工智能 语音技术 Android开发
|
存储 分布式计算 监控
Java一分钟之-Hazelcast:内存数据网格
【6月更文挑战第17天】**Hazelcast是开源的内存数据网格(IMDG),加速分布式环境中的数据访问,提供内存存储、分布式计算、线性扩展及高可用性。常见挑战包括内存管理、网络分区和数据分布不均。通过配置内存限制、优化网络和分区策略可避免问题。示例展示如何创建Hazelcast实例并使用分布式Map。使用Hazelcast提升性能和扩展性,关键在于理解和调优。**
428 1
|
11月前
|
数据采集 前端开发 JavaScript
捕捉页面的关键元素:用CSS选择器与Puppeteer自动抓取
本文介绍了如何使用 Puppeteer 结合 CSS 选择器抓取动态网页中的关键元素,以亚航网站的特价机票信息为例,通过设置代理 IP、User-Agent 和 Cookie 等技术手段,有效提升爬虫策略,实现高效、稳定的爬取。
312 5
捕捉页面的关键元素:用CSS选择器与Puppeteer自动抓取
|
SQL Oracle 关系型数据库
Havij功能详解
Havij功能详解
Havij功能详解
|
10月前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
794 13
|
11月前
|
数据采集 存储 分布式计算
ClickHouse大规模数据导入优化:批处理与并行处理
【10月更文挑战第27天】在数据驱动的时代,高效的数据导入和处理能力是企业竞争力的重要组成部分。作为一位数据工程师,我在实际工作中经常遇到需要将大量数据导入ClickHouse的需求。ClickHouse是一款高性能的列式数据库系统,非常适合进行大规模数据的分析和查询。然而,如何优化ClickHouse的数据导入过程,提高导入的效率和速度,是我们面临的一个重要挑战。本文将从我个人的角度出发,详细介绍如何通过批处理、并行处理和数据预处理等技术优化ClickHouse的数据导入过程。
1025 0
|
网络协议 Unix 应用服务中间件
如何进行 Nginx HTTPS服务器搭建
【2月更文挑战第6天】
279 0
【qt】纯代码界面设计
【qt】纯代码界面设计
453 2
|
缓存 Java Maven
深入解析Google Guava库与Spring Retry重试框架
深入解析Google Guava库与Spring Retry重试框架