中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言中向量加法和乘法運算的示例分析

發布時間:2021-04-01 11:23:16 來源:億速云 閱讀:648 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關R語言中向量加法和乘法運算的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在R語言中,不同長度的向量也是可以相加和相乘的,乘法的規則和加法類似

1,相同長度的向量相加

> x<- 1:4
> y<- 1:4
> z<- x+y
> z
[1] 2 4 6 8

規則就是 x[1]+y[1],x[2]+y[2],x[3]+y[3],x[4]+y[4]

> x<- 1:4
> y<- 1:4
> z<- x*y
> z
[1] 1 4 9 16

乘法也類似

2,不同長度的向量相加

> x<- 1:4
> y<- 1:3
> z<-x+y
警告信息:
In x + y : 長的對象長度不是短的對象長度的整倍數
> z
[1] 2 4 6 5
>

注意R返回了一個警告消息而不是一個錯誤消息, 因此這個操作實際上是被執行了的。

這一類的規則就是 x[1]+y[1],x[2]+y[2],x[3]+y[3],x[4]+y[1](因為y[3]就結束了,進入了又一次循環)

乘法規則類似

> x<- 1:4
> y<- 1:3
> z<- x*y
警告信息:
In x * y : 長的對象長度不是短的對象長度的整倍數
> z
[1] 1 4 9 4

另外,所得的向量長度為最長的那個向量的長度

> x<- 1:4
> y<- 1:3
> z<- 2:3
> w<- x+y+z
警告信息:
In x + y : 長的對象長度不是短的對象長度的整倍數
> w
[1] 4 7 8 8
> v<-x*y*z
警告信息:
In x * y : 長的對象長度不是短的對象長度的整倍數
> v
[1] 2 12 18 12
>

但是這里出了一個問題,

> x<- 1:4
> y<- 1:3
> z<- 2:3
> x+y+z
[1] 4 7 8 8
警告信息:
In x + y : 長的對象長度不是短的對象長度的整倍數
> x+z+y
[1] 4 7 8 8
警告信息:
In x + z + y : 長的對象長度不是短的對象長度的整倍數
> z+x+y
[1] 4 7 8 8
警告信息:
In z + x + y : 長的對象長度不是短的對象長度的整倍數
><span > z+y+x
[1] 4 7 8 7</span>
警告信息:
1: In z + y : 長的對象長度不是短的對象長度的整倍數
2: In z + y + x : 長的對象長度不是短的對象長度的整倍數
> z*x*y
[1] 2 12 18 12
警告信息:
In z * x * y : 長的對象長度不是短的對象長度的整倍數
> z*y*x
[1] 2 12 18 8
警告信息:
1: In z * y : 長的對象長度不是短的對象長度的整倍數
2: In z * y * x : 長的對象長度不是短的對象長度的整倍數
>

不知道各位注意到了沒有,難道我們的方法不對么

首先,加法和乘法運算,在沒有括號等其他優先級的情況下是從左至右依次算的

我們來看一下

> x<- c(1,2,3,4)
> y<- c(1,2,3)
> z<- c(2,3)
> x+y
[1] 2 4 6 5
> x+y+z
[1] 4 7 8 8
> z+y
[1] 3 5 5
> z+y+x
[1] 4 7 8 7

所以說,不同長度的向量相加,順序也是很重要的。

補充: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-1和1:(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

這一段代碼表示從12到30生成等差數列,公差為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.1到2生成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語言中向量加法和乘法運算的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石河子市| 新乡市| 普格县| 偏关县| 潢川县| 夏邑县| 长岛县| 长丰县| 深水埗区| 南皮县| 宣威市| 临武县| 桦南县| 贵南县| 额济纳旗| 金阳县| 敦化市| 中超| 汤原县| 南召县| 荥阳市| 开平市| 揭西县| 姚安县| 库车县| 龙州县| 南宁市| 沙坪坝区| 金阳县| 长沙市| 东明县| 密山市| 固原市| 项城市| 峡江县| 同仁县| 新化县| 兴城市| 马山县| 乐亭县| 上杭县|