2
我有這樣中的R的矩陣:行排序和R矩陣的列
A B C D E F
A 2 5 0 1 3 6
B 5 0 0 1 5 9
C 0 0 0 0 0 1
D 6 1 1 3 4 4
E 3 1 5 2 1 6
F 0 0 1 1 7 9
mat = structure(c(2L, 5L, 0L, 6L, 3L, 0L, 5L, 0L, 0L, 1L, 1L, 0L, 0L,
0L, 0L, 1L, 5L, 1L, 1L, 1L, 0L, 3L, 2L, 1L, 3L, 5L, 0L, 4L, 1L,
7L, 6L, 9L, 1L, 4L, 6L, 9L), .Dim = c(6L, 6L), .Dimnames = list(
c("A", "B", "C", "D", "E", "F"), c("A", "B", "C", "D", "E",
"F")))
的矩陣不是對稱的。
我想根據下列標準重新排序的行和列:
NAME TYPE
A Dog
B Cat
C Cat
D Other
E Cat
F Dog
crit = structure(list(NAME = c("A", "B", "C", "D", "E", "F"), TYPE = c("Dog",
"Cat", "Cat", "Other", "Cat", "Dog")), .Names = c("NAME", "TYPE"
), row.names = c(NA, -6L), class = "data.frame")
我試圖獲得其矩陣的行和列進行重新排序,使每個類別組合在一起:
A F B C E D
A
F
B
C
E
D
我無法找到任何合理的方法來做到這一點。
萬一它很重要,或使事情更簡單,我可以擺脫'其他'的類別,只是堅持'貓'和'狗'。
我需要找到一種方法來編寫這種重新排序的代碼,因爲矩陣非常大。
可以使用'unique(crit $ TYPE)'來代替手動輸入等級, – Frank