R語言之矩陣操作
阿新 • • 發佈:2019-01-09
R語言作為一門統計語言,肯定缺少不了矩陣處理。下面是我參考《R語言與資料探勘》總結出來以下關於矩陣運算的函式,其中包括矩陣的求和,轉置,等。
+, -, * , / |
矩陣的四則運算,對應位置的元素進行運算要求矩陣的維數必須相同 |
t() |
矩陣的行列轉置 |
colSums() |
分別對矩陣的每一列進行求和 |
rowSums() |
分別對矩陣的每一行進行求和 |
colMeans() |
分別對矩陣的每一列進行求平均值 |
rowMeans() |
分別對矩陣的每一行進行求平均值 |
det() |
解方程的行列式 |
crossprod() |
解兩個矩陣的內積 |
outer() |
解兩個矩陣的外積,又叫叉積 |
%*% |
矩陣乘法,要求第一個矩陣的列數與行數相同 |
diag() |
對矩陣取對角元素,若物件為向量(不管有沒有缺失值),則生成以向量為對角元素的對角矩陣 |
solve() |
在矩陣可逆的情況下,對矩陣求逆矩陣 |
eigen() |
對矩陣求解特徵值和特徵向量 |
接下來我們通過一些例子來了解一下這些函式。
#定義兩個都是2*2的矩陣
a<-matrix(c(1:4),ncol=2)
b<-matrix(c(5:8),ncol=2)
其中a,b分別為
> a [,1] [,2] [1,] 1 3 [2,] 2 4 > b [,1] [,2] [1,] 5 7 [2,] 6 8
</pre><pre code_snippet_id="1943999" snippet_file_name="blog_20161023_4_6616005" name="code" class="plain">#求矩陣的各列平均值
colMeans(a)
[1] 1.5 3.5
#求矩陣a的轉置矩陣
t(a)
[,1] [,2]
[1,] 1 2
[2,] 3 4
#矩陣的四則運算
3*a-b+b/a
[,1] [,2]
[1,] 3 4.333333
[2,] 3 6.000000
#方陣求解行列式
det(a)
[1] -2
#矩陣內積 crossprod(a,b) [,1] [,2] [1,] 17 23 [2,] 39 53 #注意;crossprod(a,b)等價於t(a)%*%b
至於其他函式,大家可以自己去試試練習一下。如果有什麼錯誤,還請大家留言批評指出。
注:本部落格也會發布在個人微信公眾平臺《跟著菜鳥一起學R語言》,回覆 R語言的矩陣運算 即可獲取乾貨。