#矩陣
#1.定義矩陣
> m<
-matrix(c
(1:10
),nrow=
2,ncol=
5)
#這裡的第乙個nrow為行,ncol為列數。但是陣列的數量必須與矩陣的第乙個引數的數目相同,同時行數和列數只要列出乙個就可以
> m<
-matrix(c
(1:10
),nrow=2)
> m<
-matrix(c
(1:10
),ncol=
5)
#這裡這三個m是一樣的
#2.這裡預設為按列排序,也可以改為按行排序
> m2<
-matrix(c
(1:10
),nrow=
2,byrow=t)
> m2
#3.可以給矩陣的行和列數起名字方法如下
> rname<-c
("r1"
,"r2"
)> cname<-c
("c1"
,"c2"
,"c3"
,"c4"
,"c5"
)>
dimnames
(m)<
-list
(rname,cname)
> m
#4.dim函式,它是維數的函式。用法
>
?dim
#用法1.可以求出變數的維數
>
dim(m)
#這裡由於m為乙個2行5列的矩陣,所以輸出為[1] 2 5
#方法2.可以給乙個陣列新增維數
> x<-c
(1:20
)>
dim(x)
<-c
(2,2
,5)x
#這裡x可以理解為變為長寬高分別為2,2,5的3維陣列(其實是空間結構).同理也可以重新命名
#4.n維陣列也可以用array函式來建立
>
?array
> dim1<-c
("a1"
,"a2"
)> dim2<-c
("b1"
,"b2"
,"b3"
)> dim3<-c
("c1"
,"c2"
,"c3"
,"c4"
)>
array(c
(1:24
),c(
2,3,
4),dimnames =
list
(dim1,dim2,dim3)
)
#5.矩陣的索引,注意:r中的矩陣和python其他的索引不同。它是以1開始的.
#可以直接用行數和列數來訪問元素
> m[1,
2]
#如果省略行號或者列號可以直接訪問一行或一列
> m[2,
]> m[,3
]
#如果我們定義了行名或者列名可以直接用名字來進行索引
> m[
"r1"
,"c2"
]
#6.矩陣可以直接進行運算
> m+
1
#也可以兩個矩陣相加但是要注意兩個矩陣的行數和列數要相同
> x1<
-matrix(c
(1:20
),nrow=4)
> x2<
-matrix(c
(41:60
),nrow=4)
> x1+x2
#直接相乘是各個數相乘
> x1*x2
#也可以計算矩陣的相乘(這兩種都可以)
> x1 %
*% x2
>
crossprod
(x1,x2)
#矩陣的轉置可以用t()函式完成
> x1
>
t(x1)
#r中的函式det()將計算方陣a的行列式
>
det(
x)
#diag方陣最小矩陣的對角線
> x3<
-matrix(c
(1:16
),nrow=
4,byrow =
true
)>
diag
(x3)
#矩陣的逆
>
solve
(x3)
#7.4個函式
>
colsums
(m)>
colsums
(m[,1]
)
#這裡是不行的會顯示「error in colsums(m[, 1]) : 'x』必需是陣列,而且至少得有兩個維度」
#也就是說他必須要算所有列的和,但是我們如果想要計算某一列的和:
> tmp<
-m[,1]
>
sum(tmp)
#這樣就可以了
>
rowsums
(m)>
colmeans
(m)>
rowmeans
(m)
R語言 矩陣的基礎運算
先建立乙個2 5的矩陣a x c 1 10 a matrix x,ncol 2,nrow 5,byrow t a 1 2 1,1 2 2,3 4 3,5 6 4,7 8 5,9 10再建立乙個矩陣b x c 1 10 b matrix x,ncol 2,nrow 5 b 1 2 1,1 6 2,2 ...
r語言的基礎
資料型別 矩陣 建立矩陣 m matrix 1 8,nrow 2 q 按行建立矩陣 m matrix 1 8,nrow 2,byrow t mmatrix c 1,5,2,6,3,7,4,8 nrow 2 byrow引數知識改變了資料的輸入順序,矩陣本身依然是按列儲存 矩陣運算 m1 matrix ...
R語言基礎
一 幫助 學習r,要遵循r的法則。在r的王國裡,遇到不會的問題,第一不是問度娘,而是r為你提供的指 難 針。1.help.start 開啟幫助文件首頁。大而全,一般你不會去看的,除非你很無聊,想看看被如此多人熱愛的r,究竟有幾條胳膊幾條腿。2.help plot 或?plot 開啟函式的幫助 3.h...