[問題]將矩陣呈現的關係轉為排序/ELECTRE II

看板R_Language作者 (Shawn純真)時間10年前 (2014/08/15 23:28), 10年前編輯推噓4(405)
留言9則, 4人參與, 最新討論串1/1
[問題類型]: 程式諮詢(我想用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

08/16 21:33, , 1F
我覺得這個可能有partial order set的問題耶
08/16 21:33, 1F

08/16 21:33, , 2F
也就是說,最後可能不存在一個合理的排列
08/16 21:33, 2F

08/16 21:33, , 3F
Anyway, 我沒有看過解這種問題的實作,也許你要自己寫
08/16 21:33, 3F

08/16 22:31, , 4F
實際上有ELECTRE II的軟體可以求出排序,但是因為不
08/16 22:31, 4F

08/16 22:32, , 5F
懂其排序的原理,因此無法在R上進行實作
08/16 22:32, 5F

08/17 08:56, , 6F
第二個矩陣[2,3]如果也會是1的話,可以考慮order(rowSums(A)
08/17 08:56, 6F

08/17 08:58, , 7F
order(rowSums(A),decreasing=TRUE)
08/17 08:58, 7F

08/17 12:42, , 8F
可能沒有辦法,因為的確會出現W大說的部份排序問題
08/17 12:42, 8F

08/21 01:58, , 9F
現在問題是[i,j],[j,i]都可以等於1囉?
08/21 01:58, 9F
文章代碼(AID): #1JxYS3jd (R_Language)
文章代碼(AID): #1JxYS3jd (R_Language)