如何使用行名在 R 中创建矩阵的子集?
r programmingserver side programmingprogramming更新于 2025/4/12 1:22:17
在 R 中创建矩阵时,行名和列名未定义,但我们可以单独定义它们。如果我们想获取矩阵行的子集,则可以在单个方括号内使用行号,但如果我们想使用名称来执行此操作,则需要指定这些名称。
示例
M1<-matrix(1:25,ncol=5) rownames(M1)<-letters[1:5] M1
输出
[,1] [,2] [,3] [,4] [,5] a 1 6 11 16 21 b 2 7 12 17 22 c 3 8 13 18 23 d 4 9 14 19 25
示例
M1[c("a","b"),]
输出
[,1] [,2] [,3] [,4] [,5] a 1 6 11 16 21 b 2 7 12 17 22
示例
M1[c("a","d"),]
输出
[,1] [,2] [,3] [,4] [,5] a 1 6 11 16 21 d 4 9 14 19 24
示例
M1[c("a","e"),]
输出
[,1] [,2] [,3] [,4] [,5] a 1 6 11 16 21 e 5 10 15 20 25
示例
M1[c("a","b","e"),]
输出
[,1] [,2] [,3] [,4] [,5] a 1 6 11 16 21 b 2 7 12 17 22 e 5 10 15 20 25
示例
M1[c("a","b","d","e"),]
输出
[,1] [,2] [,3] [,4] [,5] a 1 6 11 16 21 b 2 7 12 17 22 d 4 9 14 19 24 e 5 10 15 20 25
示例
M2<-matrix(1:100,nrow=10) rownames(M2)<-LETTERS[1:10] M2
输出
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] A 1 11 21 31 41 51 61 71 81 91 B 2 12 22 32 42 52 62 72 82 92 C 3 13 23 33 43 53 63 73 83 93 D 4 14 24 34 44 54 64 74 84 94 E 5 15 25 35 45 55 65 75 85 95 F 6 16 26 36 46 56 66 76 86 96 G 7 17 27 37 47 57 67 77 87 97 H 8 18 28 38 48 58 68 78 88 98 I 9 19 29 39 49 59 69 79 89 99 J 10 20 30 40 50 60 70 80 90 100
示例
M2[c("A","J"),]
输出
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] A 1 11 21 31 41 51 61 71 81 91 J 10 20 30 40 50 60 70 80 90 100
示例
M2[c("A","D","F","I"),]
输出
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] A 1 11 21 31 41 51 61 71 81 91 D 4 14 24 34 44 54 64 74 84 94 F 6 16 26 36 46 56 66 76 86 96 I 9 19 29 39 49 59 69 79 89 99
示例
M2[c("A","C","E","G","J"),]
输出
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] A 1 11 21 31 41 51 61 71 81 91 C 3 13 23 33 43 53 63 73 83 93 E 5 15 25 35 45 55 65 75 85 95 G 7 17 27 37 47 57 67 77 87 97 J 10 20 30 40 50 60 70 80 90 100
示例
M3<-matrix(rnorm(25,1,0.04),nrow=5) rownames(M3)<-c("Rate1","Rate2","Rate3","Rate4","Rate5") M3
输出
[,1] [,2] [,3] [,4] [,5] Rate1 1.0095550 0.9804156 0.9655588 1.025432 0.9420430 Rate2 0.9926681 0.9830571 0.9428085 1.000219 0.9980977 Rate3 1.0039020 1.0121637 1.0291146 1.062020 1.0822971 Rate4 1.0720653 1.0469583 0.9947673 1.065848 1.0165283 Rate5 0.9752784 1.0382877 0.9933063 1.011313 0.9942537
示例
M3["Rate3",]
输出
[1] 1.003902 1.012164 1.029115 1.062020 1.082297
示例
M3[c("Rate1","Rate5"),]
输出
[,1] [,2] [,3] [,4] [,5] Rate1 1.0095550 0.9804156 0.9655588 1.025432 0.9420430 Rate5 0.9752784 1.0382877 0.9933063 1.011313 0.9942537
示例
M3[c("Rate1","Rate3","Rate5"),]
输出
[,1] [,2] [,3] [,4] [,5] Rate1 1.0095550 0.9804156 0.9655588 1.025432 0.9420430 Rate3 1.0039020 1.0121637 1.0291146 1.062020 1.0822971 Rate5 0.9752784 1.0382877 0.9933063 1.011313 0.9942537