1. 程式人生 > >R語言之矩陣操作

R語言之矩陣操作

       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語言的矩陣運算 即可獲取乾貨