python访问矩阵元素_[R learning]-0007-矩阵-矩阵中元素的访问

6ee3f5014fa93d497b776a015fc4cd24.png

===================

= 个人练习R语言的笔记 =

= 跟我一起来 Coding⑧! =

===================

0007-矩阵-矩阵中元素的访问

矩阵概念

  • 在R语言中,矩阵Matrix是将数据按行和列组织的一种数据对象,相当于二维数组,可以用于描述二维的数据
  • 与向量相似,矩阵的每个元素都拥有相同的数据类型。通常用列来表示来自不同变量的数据,用行来表示相同特性的数据

R语言中矩阵的创建

创建形式1:指定行数

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

## [,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

a <- matrix(1:20, nrow = 6)

# 注意!这里进行了循环补齐 # 且抛出一个warning!

a

## Warning in matrix(1:20, nrow = 6): 数据长度[20]不是矩阵行数[6]的整倍

## [,1] [,2] [,3] [,4]
## [1,] 1 7 13 19
## [2,] 2 8 14 20
## [3,] 3 9 15 1
## [4,] 4 10 16 2
## [5,] 5 11 17 3
## [6,] 6 12 18 4

创建形式2:指定列数

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

## [,1] [,2] [,3] [,4]
## [1,] 1 6 11 16
## [2,] 2 7 12 17
## [3,] 3 8 13 18
## [4,] 4 9 14 19
## [5,] 5 10 15 20

m <- matrix(1:20, ncol = 6)

## Warning in matrix(1:20, ncol = 6): 数据长度[20]不是矩阵列数[6]的整倍数

m

## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 1 5 9 13 17 1
## [2,] 2 6 10 14 18 2
## [3,] 3 7 11 15 19 3
## [4,] 4 8 12 16 20 4

创建形式3:赋值同时给行和列命名

m <- matrix(c(1:20),
nrow = 4,
ncol = 5,
dimnames = list(c('r1','r2','r3','r4'),
c('c1','c2','c3','c4','c5')))
m

## 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

创建形式4:仅指定大小,不赋值

m <- matrix(nrow = 2, ncol = 3)
m

## [,1] [,2] [,3]
## [1,] NA NA NA
## [2,] NA NA NA

创建形式5:使用rbind或者cbind组合构建 - rbind:将两个向量/矩阵按照行合并为一个矩阵 - cbind:将两个向量/矩阵按照列合并为一个矩阵

a <- c(1:4)
b <- c(4:7)
m <- rbind(a,b)
m

## [,1] [,2] [,3] [,4]
## a 1 2 3 4
## b 4 5 6 7

a <- c(1:4)
b <- c(4:7)
m <- cbind(a,b)
m

## a b
## [1,] 1 4
## [2,] 2 5
## [3,] 3 6
## [4,] 4 7

m1 <- matrix(1:8, nrow = 2)
m2 <- matrix(2:9, nrow = 2)
m1

## [,1] [,2] [,3] [,4]
## [1,] 1 3 5 7
## [2,] 2 4 6 8

m2

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

m <- rbind(m1,m2)
m

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

m <- cbind(m1,m2)
m

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

1. 通过位置引用

m

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

m[2,3]

## [1] 6

m[2,]

## [1] 2 4 6 8 3 5 7 9

m[,8]

## [1] 8 9

m[3] # 第三个元素

## [1] 3

2. 通过名称引用

m <- matrix(c(1:20),
nrow = 4,
ncol = 5,
dimnames = list(c('r1','r2','r3','r4'),
c('c1','c2','c3','c4','c5')))
m

## 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

m['r1','c5']

## [1] 17

m['r2',]

## c1 c2 c3 c4 c5
## 2 6 10 14 18

m[,'c2']

## r1 r2 r3 r4
## 5 6 7 8

3. 通过删除方式访问

# 排除第1行和第3列
m[-1,-3]

## c1 c2 c4 c5
## r2 2 6 14 18
## r3 3 7 15 19
## r4 4 8 16 20

m[-1,]

## c1 c2 c3 c4 c5
## r2 2 6 10 14 18
## r3 3 7 11 15 19
## r4 4 8 12 16 20

m[,-2]

## c1 c3 c4 c5
## r1 1 9 13 17
## r2 2 10 14 18
## r3 3 11 15 19
## r4 4 12 16 20

4. 通过向量引用

m[c(1,2),c(4,5)]

## c4 c5
## r1 13 17
## r2 14 18

m[c(1:3),c(2:4)]

## c2 c3 c4
## r1 5 9 13
## r2 6 10 14
## r3 7 11 15

m[c(3,4),]

## c1 c2 c3 c4 c5
## r3 3 7 11 15 19
## r4 4 8 12 16 20

m[,c(2:5)]

## c2 c3 c4 c5
## r1 5 9 13 17
## r2 6 10 14 18
## r3 7 11 15 19
## r4 8 12 16 20

m[,c(2,5,4)]

## c2 c5 c4
## r1 5 17 13
## r2 6 18 14
## r3 7 19 15
## r4 8 20 16

m[-c(2,3),]

## c1 c2 c3 c4 c5
## r1 1 5 9 13 17
## r4 4 8 12 16 20

m['r3',c('c2','c1')]

## c2 c1
## 7 3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值