R语言系统教程(一):向量及其相关操作

本文是R语言系统教程的第一部分,详细介绍了向量的赋值、运算、生成方法,包括等差数列、等间隔函数、重复函数。此外,还讲解了逻辑向量、NAN和NA、字符型向量以及复数向量的相关操作,以及向量下标的使用技巧。
摘要由CSDN通过智能技术生成

前言

准备用业余时间写一些关于R语言的系统教程,主要思路上计划结合自己的使用经验,不追求更新速度,甚至可能会一小节一小节的写,但力求对R语言中涉及到的内容做系统全面的剖析,因此有时读者可能会觉得笔者很啰嗦,一些很简单的东西却要说个半天,还请大家多多谅解。
主要参考书籍如下:

毅, 立萍. 统计建模与 R 软件[M]. 清华大学出版社, 2007.

另外随着笔者的不断学习和实践,随时可能会更改或添加一些内容,欢迎随时向笔者指出教程中的错误与不足。

1.1 向量(Vector)

赋值

首先是最简单的直接赋值,将一个向量以c()的形式直接赋给一个变量x,并且注意与其他脚本语言相同,在R语言中使用一个变量名是不需要事先声明的,另外,下面的代码块中##代表console的输出结果,本系列之后也是如此。(打脸 ̄□ ̄:由于格式问题,作者从第三期开始更改了代码格式)
x = c(10.4, 5.6, 3.1, 6.4, 21.7)
x

[1] 10.4 5.6 3.1 6.4 21.7

除此之外还可以通过<-或者assign()函数赋值
```c
x <- c(10.4, 5.6, 3.1, 6.4, 21.7)
x
## [1] 10.4 5.6 3.1 6.4 21.7

assign("x",c(10.4, 5.6, 3.1, 6.4, 21.7))
x
## [1] 10.4 5.6 3.1 6.4 21.7

并且<-还可以反向

c(10.4, 5.6, 3.1, 6.4, 21.7) -> x
x
## [1] 10.4 5.6 3.1 6.4 21.7

还可以通过已有的向量来定义(赋值)新的向量

y = c(x, 0, x)
y
## [1] 10.4 5.6 3.1 6.4 21.7 0.0 10.4 5.6 3.1 6.4 21.7

运算

首先是向量的加法运算,与数学常识相同,两个length相同的vector才可以相加。

x = c(-1, 2, 0)
y = c(3, 8, 2)
v = x + y
v
## [1] 2 10 2

数乘运算:

u = 2*x + y + 1
u
## [1] 2 10 2

两个vector直接相乘对应的运算是其二者对应项相乘,同样要求length相同

x*y
## [1] -3 16 0

两个vector直接相除对应的运算是其二者对应项相除,同样要求length相同

x*y
## [1] -3 16 0

vector平方对应的是其对应项分别平方

x^2
## [1] 1 4 0

将一个vector的vector指数运算即对其对应项分别进行对应的指数运算

y^x
## [1] 0.3333333 64.0000000 1.0000000

从以上几个例子可以看出,对vector的直接运算往往都是对其每个单项进行操作,体现了一种批处理的思想。一些常用运算还有

log(y)
## [1] 1.0986123 2.0794415 0.6931472
exp(y)
## [1] 20.085537 2980.957987 7.389056
sqrt(y)
## [1] 1.732051 2.828427 1.414214
sin(y)
## [1] 0.1411200 0.9893582 0.9092974

还有cos(),tan()等,另外注意sqrt(-2)是非allowed的,但是可以

sqrt(-2+0i) # 0*i is also not allowed
## [1] 0+1.414214i

常用函数

还有一些应用于向量对象的很有用的函数,首先是min()函数,可以返回vector中的最小值

x = c(10,6,4,7,8)
min(x)
## [1] 4

同理还有max(),返回最大值

max(x)
## [1] 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值