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

本文介绍了R语言中矩阵的创建,包括使用matrix()函数、dim()方法和rbind()、cbind()函数。同时,详细讲解了如何获取矩阵中的特定元素,如单个元素、行、列以及指定行列的元素。最后,文章探讨了矩阵的加法、减法、乘法等基本运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值