R语言

R语言矩阵与数组2021.1.24

2021-01-28  本文已影响0人  R语言_茶味先生

总结一句,放在开头:R语言中的向量更像是数组,而数组更像是矩阵 。

矩阵

矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合。向量是一维的,而矩阵是二维的,需要有行和列。在R软件中,矩阵是有维数的向量,这里的短阵元素可以是数值型,字符型或者逻辑型,但是每个元素必须都拥有相同的模式,这个和向量一致。

1、m<-matrix(向量名,nrow=行数,ncol=列数): 输出矩阵 

例如输入:

x<-1:20

m<-matrix(x,nrow=2,ncol=10)

输出:

       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]

[1,]    1    3    5    7    9  11  13  15  17    19

[2,]    2    4    6    8  10  12  14  16  18    20

2、m<-matrix(向量名,数值,byrow=T/F) :将数据分为x行,并且按行或按列排列元素(T为按行,F为按列)

例如输入:

 m<-matrix(1:20,4,byrow=T)                             

输出:

        [,1] [,2] [,3] [,4] [,5]                                                    

[1,]    1    2    3    4    5

[2,]    6    7    8    9  10

[3,]  11  12  13  14  15

[4,]  16  17  18  19  20

例如输入:

 m<-matrix(1:20,4,byrow=F)                            

输出:

       [,1] [,2] [,3] [,4] [,5]

[1,]    1    5    9  13  17

[2,]    2    6  10  14  18

[3,]    3    7  11  15  19

[4,]    4    8  12  16  20

矩阵行列命名

用list列表来给矩阵命名行列

例子:

rnames<-c("R1","R2","R3","R4")

cnames<-c("C1","C2","C3","C4","C5")

dimnames(m)<-list(rnames,cnames)

输出:

      C1 C2 C3 C4 C5

R1  1    5    9   13  17

R2   2    6  10  14  18

R3    3    7  11  15 19

R4    4    8  12  16  20


数组

创建三维数组

输入:

dim1<-c("A1","A2")

dim2<-c("B1","B2","B3")                   

dim3<-c("C1","C2","C3","C4")                                                    #定义每一维度名称

z<-array(1:24,c(2,3,4),dimnames<-list(dim1,dim2,dim3))         #创建“长宽高为2,3,4”的三维数组

输出:

, , C1

  B1 B2 B3

A1  1  3  5

A2  2  4  6

, , C2

     B1 B2 B3

A1  7   9   11

A2  8  10  12

, , C3

     B1 B2 B3

A1 13  15 17

A2 14  16 18

, , C4

     B1 B2 B3

A1 19  21 23

A2 20  22 24


矩阵索引

1.访问元素:矩阵名[行下标,列下标],例如m[1,2],访问第一行,第二列元素。

2.访问某行所有元素:矩阵名[行下标,]/矩阵名[,列下标],例如:m[,3],访问第三列所有元素。

3.访问指定行和列元素:矩阵名[c(开始行:结束行),c(开始列:结束列)]例如:m[c(2:4),(1:3)],访问从第二行到第四行,第一列到第三列所有元素。

4.去除某一行访问某列元素:矩阵名[-行下标,列下标],例如:m[-1,2]取出去除了第一行的第二列其他元素。

5.通过行名和列命索引:矩阵名["行名","列名"], 例如:m["R1","C2"]取出行名为R1,列名为C2的元素,注意行名和列名要加引号


矩阵运算

四则运算

矩阵与矩阵运算要求维度一致,矩阵与值也可以进行四则运算。

只对矩阵的某一行或者某一列进行运算:

rowSums(m):计算矩阵每一行的和

colSums(m):计算矩阵每一列的和

rowMeans(m):计算矩阵每一行的平均值

colMeans(m):计算矩阵每一列的和平均值

矩阵乘法(分为内积和外积)

 n*m:外积,矩阵对应元素乘积

n%*%m:内积,矩阵的积对应行列相乘再相加

其他运算

diag(矩阵名):输出方阵的对角线元素

t(函数名):输出转置矩阵,并且转换排序规则

上一篇 下一篇

猜你喜欢

热点阅读