R语言学习之路(二)矩阵

来源:互联网 发布:建筑模型动画软件 编辑:程序博客网 时间:2024/06/06 03:08

R语言中的矩阵

一、矩阵的创建

R语言中,对于矩阵的创建一般的方法有:

1.直接使用 matrix()函数进行创建

    x<- matrix(1:4)

         [,1]

   [1,]    1

   [2,]    2

   [3,]    3

   [4,]    4

对于上诉的矩阵还可以设置行、列

> x<- matrix(1:8,nrow = 2 ,ncol = 4,byrow = T)

> x     [,1] [,2] [,3] [,4]

[1,]    1    2    3    4

[2,]    5    6    7    8

 

 

 

 

对于上诉问题:ncol 设置列的数目,nrow为设置 行的数目 byrow是否设置为行优先。Byrow是一个TRUE的类型并且区分大小写字母。

2.通过dim()方法将不是矩阵类型的数据进行转换为矩阵

> x<- 1:12

> dim(x)<- c(3,4)

> x    

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

[1,]    1    4    7   10

[2,]    2    5    8   11

[3,]    3    6    9   12

> is.matrix(x)

[1] TRUE

判断是否为矩阵类型

>

 

3.通过 rbind() cbind()方法来创建

x1<-c(1,2,3,4)

x2<-c(2,3,4,5)

x3<-c(6,7,8,9)

cbind(x1,x2,x3)

rbind(x1,x2,x3)

得出的结果: 

> cbind(x1,x2,x3)     

      x1 x2 x3

[1,]  1  2  6

[2,]  2  3  7

[3,]  3  4  8

[4,]  4  5  9

> rbind(x1,x2,x3)   

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

x1    1    2    3    4

x2    2    3    4    5

x3    6    7    8    9

 二、获取矩阵中的元素

y<-matrix(rnorm(20),ncol = 4,nrow = 5)

y

y[1] #获取第一个元素

y[1,] #获取第一行元素

y[,1] #获取第一列元素

y[2,4] #获取指定的行列元素

y[c(1,3),c(2,4)] #获取第1,3行,第2,4列元素组成矩阵

y[2:5,] #获取2-5行的全部元素

y[-1,] #删除第一行元素,保留剩下的全部元素

 

得出的结果:

> y<-matrix(rnorm(20),ncol = 4,nrow = 5)

> y          

 

 

 

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

[1,]  0.7288271  0.9408934 -0.7733437 -1.1409896

[2,]  1.7184049  0.2224969 -0.8114160  0.5662810

[3,] -2.7166778  1.5315382 -1.5977639  0.5009519

[4,]  1.7531333  0.9482327 -0.1965466 -0.8645998

[5,]  0.4180210 -0.1927124  1.2947667  1.2814977

> View(mdat)

> y[1][1] 0.7288271

> y[1,][1]  0.7288271  0.9408934 -0.7733437 -1.1409896

> y[,1][1]  0.7288271  1.7184049 -2.7166778  1.7531333  0.4180210

> y[2,4][1] 0.566281

> y[c(1,3),c(2,4)]       

        [,1]       [,2]

[1,] 0.9408934 -1.1409896

[2,] 1.5315382  0.5009519

> y[2:4,]       

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

[1,]  1.718405 0.2224969 -0.8114160  0.5662810

[2,] -2.716678 1.5315382 -1.5977639  0.5009519

[3,]  1.753133 0.9482327 -0.1965466 -0.8645998

> y[-1,]         

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

[1,]  1.718405  0.2224969 -0.8114160  0.5662810

[2,] -2.716678  1.5315382 -1.5977639  0.5009519

[3,]  1.753133  0.9482327 -0.1965466 -0.8645998

[4,]  0.418021 -0.1927124  1.2947667  1.2814977

> y[2:5,]       

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

[1,]  1.718405  0.2224969 -0.8114160  0.5662810

[2,] -2.716678  1.5315382 -1.5977639  0.5009519

[3,]  1.753133  0.9482327 -0.1965466 -0.8645998

[4,]  0.418021 -0.1927124  1.2947667  1.2814977

 

三、矩阵的运算

 对于矩阵的运算:加法、减法、乘法、除法、逆运算

x<-matrix(1:4,ncol = 2,nrow = 2)

y<-matrix(c(2,4,6,8),2,2)

x

y

x+y #矩阵的加法运算

x-y #矩阵的减法运算

x%*%y #矩阵的乘法运算

x*y #只是对应位置的乘法

 

得出的结果:

> x<-matrix(1:4,ncol = 2,nrow = 2)

> y<-matrix(c(2,4,6,8),2,2)

> x    

        [,1] [,2]

[1,]    1    3

[2,]    2    4

> y    

        [,1] [,2]

[1,]    2    6

[2,]    4    8

> x+y 

       [,1] [,2]

[1,]    3    9

[2,]    6   12

> x-y

      [,1] [,2]

[1,]   -1   -3

[2,]   -2   -4

> x%*%y     #标准的线性代数在矩阵的乘法

      [,1] [,2]

[1,]   14   30

[2,]   20   44

> x*y       #只是对应位置上的数值相乘

      [,1] [,2]

[1,]    2   18 

[2,]    8   32

0 0
原创粉丝点击