R反轉排序的實現
回答
這看起來像肯德爾的距離(有時也稱爲泡泡分類距離)的工作。這可能是衡量排名空間距離的最常用指標。
Kendall距離計算兩個序列在兩個索引中項目的排序不同的次數。在其中一個序列是平凡序列(1,2,...,n)的情況下,我們可以簡單地通過計算i和d(i)> pi(j)的次數來測量距離, 。
如果您喜歡此度量標準(它相當於將一個序列轉換爲1:n時必須完成的相鄰項目的最小配對轉置數量),您可以在我的包中找到它,RMallow, CRAN。該函數被稱爲AllSeqDists。這裏是一個例子:
library(RMallow)
# Create a matrix of sequences, each of length 5
datas <- matrix(c(1:5, 5:1, c(2, 1, 3, 4, 5), c(5, 1, 2, 3, 4), c(1, 2, 4, 5, 6), c(1, 5, 6, 2, 4)), nrow = 6, byrow = TRUE)
# Calculate all of their Kendall distances to the sequence (1, 2, 3, 4, 5)
datas <- SimplifySequences(datas)
dists <- AllSeqDists(datas)
你也可以考慮斯皮爾曼的指標。
此外,還有一類關於排名數據的模型,我必須根據你想要做什麼來插入叫做「錦葵模型」。
嗨,這聽起來很不錯!如果序列中存在間隙(比如4,2,1,5,6),AllSeqDists是否會工作? – user1357015
另外,這與Damerau-Levenshtein距離有什麼不同,只允許換位? – user1357015
@ user137015我更新了我的答案,以反映出解答您的第一個問題的其他功能。第二個問題的答案是:顯然它是相同的,並且您已經找到這個度量的另一個名稱! – Rguy
- 1. 實現反向排序LinkedList
- 2. 用於計數的合併排序實現數組的反轉
- 3. 斯卡拉:排序反轉
- 4. 實現堆排序
- 5. 桶排序實現
- 6. 插入排序的實現
- 7. Ember.js反序列化實現
- 8. 實現控制反轉的方法
- 9. 反轉字符 - 棧的實現
- 10. 反轉計數值的排序
- 11. 在Nvelocity中實現排序
- 12. 歸併排序實現
- 13. React.js - 實現組件排序
- 14. 堆排序Python實現
- 15. Java合併排序實現
- 16. 插入排序實現
- 17. 快速排序python實現
- 18. 實現快速排序
- 19. 如何實現排序類
- 20. 快速排序實現
- 21. 插入排序實現
- 22. 板藍根實現排序
- 23. 實現合併排序C++
- 24. C++實現計數排序
- 25. 如何實現不同類型序列的深度反轉inscala
- 26. 解析json數據排序反轉
- 27. 排序中的R
- 28. 在python中實現R表的實現
- 29. Scala TreeMap陌生;實現逆序排序
- 30. Crystal Reports如何實現排序順序
這並不完全回答你的問題,但Kendall的tau http://en.wikipedia.org/wiki/Kendall_tau_rank_correlation_coefficient給出了一個統計數據,在這種情況下似乎是非常合適的([#concordant pairs]的縮放值) - [#不一致對]); 'cor.test(...,method =「kendall」)'返回指定x和y值的值(即'cor.test(seq(n),pi(n),method =「kendall」)$統計量') –