R语言向量_常用的向量运算

向量运算与逻辑运算

> 2+3

[1] 5

> "+"(2,3)

[1] 5

> x<-c(1,2,4)

> x+c(5,0,-1)

[1] 6 2 3

这些都比较简单,就是简单的标量运算和向量运算,只不过是运算符可以放到前面,并且向量的对应元素需要相加罢了。

 

> x<-c(1,2,4)

> x*c(5,0,-1)

[1]  5  0 -4

> x<-c(1,2,4)

> x/c(5,4,-1)

[1]  0.2  0.5 -4.0

> x%%c(5,4,-1)

[1] 1 2 0

对于这几步的运算需要注意一下几点:*运算就是向量对应元素相乘,和线性代数里面的矩阵相乘并不一样。/运算就是对应元素相除就好。%%运算就是对应元素相除取余数。

 

向量索引

> y<-c(1.2,3.9,0.4,0.12)

> y[c(1,3)]

[1] 1.2 0.4

> y[2:3]

[1] 3.9 0.4

> v<-3:4

> y[v]

[1] 0.40 0.12

这些都比较容易,一看就会,不做详细解释

 

> x<-c(4,2,17,5)

> y<-x[c(1,1,3)]

> y

[1]  4  4 17

这个例子是想讲元素重复是允许的

 

> z<-c(5,12,13)

> z[-1]

[1] 12 13

> z[-1:-2]

[1] 13

带负号的下标代表我们想要把相应的元素剔除掉。

 

用:运算符创建向量

> 5:8

[1] 5 6 7 8

> 5:1

[1] 5 4 3 2 1

> i<-2

> 1:i-1

[1] 0 1

> 1:(i-1)

[1] 1

:运算符实际上就是为了得到一串等差数列,比较简单,但是要特别讲一下的是1:i-11:(i-1),这里面实际上及一个运算符优先级的问题,1:i-1是先计算1:i得到1 2,然后再减1得到0 1,而1:(i-1)是先计算i-1得到1后然后计算1:1,最后答案就是1.

 

使用seq()创建向量

这个函数也是用来生成等差数列的,具体用法看例子

> seq(from=12,to=30,by=3)

[1] 12 15 18 21 24 27 30

这一段代码表示从1230生成等差数列,公差为3

> seq(from=1.1,to=2,length=10)

 [1] 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0

这个表示从1.12生成10个数的等差数列

 

使用rep()重复向量常数

调用的格式是rep(x,times),表示创建times*length(x)个元素的向量,这个向量是有x重复times此构成。

> x<-rep(8,4)

> x

[1] 8 8 8 8

> rep(c(5,12,13),3)

[1]  5 12 13  5 12 13  5 12 13

> rep(1:3,2)

[1] 1 2 3 1 2 3

> rep(c(5,12,13),each=2)

[1]  5  5 12 12 13 13

最后一个each表示向量中每一个元素重复的次数,一个个元素重复的,不再是整个向量重复。

你可能感兴趣的:(R语言)