看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 想將矩陣呈現的關係轉為排序 [,1] [,2] [,3] [1,] 0 1 1 [2,] 0 0 0 [3,] 0 1 0 以上面這個矩陣為例,這是一個兩兩比較關係的方陣 [1,2]=1表示1優於2,[1,3]=1表示1優於3,[3,2]=1表示3優於2 因此綜合上面三個:1優於3優於2 想得到的排序應該為1 3 2 以另一個矩陣解釋 [,1] [,2] [,3] [1,] 0 0 1 [2,] 1 0 0 [3,] 0 0 0 即2優於1優於3,想得到的排序應為2 1 3 我原本想用R進行ELECTRE II的模擬實驗,可是R裡面沒有ELECTRE II的package 只有'MCDA'裡的ELECTRE TRI(另一個版本,差異頗大) 因此想說自己寫一個簡易版,可是到最後一個步驟怎麼也無法將矩陣轉為排序 實際上會排序的數量會有100個,也就是100*100的矩陣 因此無法像上面的例子用筆畫一畫就畫出來 想請問版上大大會如何解決這個問題 感激不盡! [程式範例]: [關鍵字]: -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.203.4 ※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1408116483.A.B67.html ※ 編輯: innocent817 (114.36.203.4), 08/16/2014 00:45:56
Wush978: 我覺得這個可能有partial order set的問題耶 08/16 21:33
Wush978: 也就是說,最後可能不存在一個合理的排列 08/16 21:33
Wush978: Anyway, 我沒有看過解這種問題的實作,也許你要自己寫 08/16 21:33
innocent817: 實際上有ELECTRE II的軟體可以求出排序,但是因為不 08/16 22:31
innocent817: 懂其排序的原理,因此無法在R上進行實作 08/16 22:32
koai: 第二個矩陣[2,3]如果也會是1的話,可以考慮order(rowSums(A) 08/17 08:56
koai: order(rowSums(A),decreasing=TRUE) 08/17 08:58
innocent817: 可能沒有辦法,因為的確會出現W大說的部份排序問題 08/17 12:42
cywhale: 現在問題是[i,j],[j,i]都可以等於1囉? 08/21 01:58