如何将重复的行名和列名更改为R中矩阵的序列?
要将重复的行名和列名更改为序列,我们首先需要在向量中读取这些名称,然后使用make.unique功能将它们设置为行名和列名。例如,如果矩阵的行名定义为A,B,A,B,A,则可以将其转换为A,B,A.1,B.1,A.2。
例1
M1<−matrix(1:25,ncol=5) M1输出结果
[,1] [,2] [,3] [,4] [,5] [1,] 1 6 11 16 21 [2,] 2 7 12 17 22 [3,] 3 8 13 18 23 [4,] 4 9 14 19 24 [5,] 5 10 15 20 25
示例
colnames(M1)<−c("A","B","A","A","B") rownames(M1)<−c("C","D","D","C","C") M1输出结果
A B A A B C 1 6 11 16 21 D 2 7 12 17 22 D 3 8 13 18 23 C 4 9 14 19 24 C 5 10 15 20 25
示例
C1<−c("A","B","A","A","B") colnames(M1)<−make.unique(C1) R1<−c("C","D","D","C","C") rownames(M1)<−make.unique(R1) M1输出结果
A B A.1 A.2 B.1 C 1 6 11 16 21 D 2 7 12 17 22 D.1 3 8 13 18 23 C.1 4 9 14 19 24 C.2 5 10 15 20 25
例2
M2<−matrix(rnorm(25),nrow=5) M2输出结果
[,1] [,2] [,3] [,4] [,5] [1,] −0.9603079 2.7738930 −1.68887845 −0.3516074 2.237315508 [2,] −0.3346606 −1.2140159 −0.08791009 −0.3596462 −0.009851671 [3,] 0.7399818 −2.1791770 −1.70416955 0.2715390 −0.766143519 [4,] 1.1195890 −1.7790965 0.09878024 −0.4761445 1.859189587 [5,] −1.3238430 0.2936939 −2.15993049 −0.9182923 −0.647121554
示例
colnames(M2)<−c("Hot","Cold","Cold","Hot","Hot") rownames(M2)<−c("Asian","Americas","Americas","Asian","Americas") M2输出结果
Hot Cold Cold Hot Hot Asian −0.9603079 2.7738930 −1.68887845 −0.3516074 2.237315508 Americas −0.3346606 −1.2140159 −0.08791009 −0.3596462 −0.009851671 Americas 0.7399818 −2.1791770 −1.70416955 0.2715390 −0.766143519 Asian 1.1195890 −1.7790965 0.09878024 −0.4761445 1.859189587 Americas −1.3238430 0.2936939 −2.15993049 −0.9182923 −0.647121554
示例
C2<−c("Hot","Cold","Cold","Hot","Hot") colnames(M2)<−make.unique(C2) R2<−c("Asian","Americas","Americas","Asian","Americas") rownames(M2)<−make.unique(R2) M2输出结果
Hot Cold Cold.1 Hot.1 Hot.2 Asian −0.9603079 2.7738930 −1.68887845 −0.3516074 2.237315508 Americas −0.3346606 −1.2140159 −0.08791009 −0.3596462 −0.009851671 Americas.1 0.7399818 −2.1791770 −1.70416955 0.2715390 −0.766143519 Asian.1 1.1195890 −1.7790965 0.09878024 −0.4761445 1.859189587 Americas.2 −1.3238430 0.2936939 −2.15993049 −0.9182923 −0.647121554
范例3
M3<−matrix(sample(c(21:50),16),nrow=4) M3输出结果
[,1] [,2] [,3] [,4] [1,] 36 46 26 21 [2,] 42 24 34 50 [3,] 37 33 43 27 [4,] 45 30 49 39
示例
colnames(M3)<−c("V1","V1","V2","V2") rownames(M3)<−c("case1","case2","case2","case1") M3输出结果
V1 V1 V2 V2 case1 36 46 26 21 case2 42 24 34 50 case2 37 33 43 27 case1 45 30 49 39
示例
C3<−c("V1","V1","V2","V2") colnames(M3)<−make.unique(C3) R3<−c("case1","case2","case2","case1") rownames(M3)<−make.unique(R3) M3输出结果
V1 V1.1 V2 V2.1 case1 36 46 26 21 case2 42 24 34 50 case2.1 37 33 43 27 case1.1 45 30 49 39