如何在R語言中使用行名建立矩陣的子集?


在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

更新於:2020年10月18日

564 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告