0
使用示例可能更容易解釋我自己。 比方說,我有一個列表S:對包含不同類型的列表或對象進行排序R
小號< - 列表(C(5,3,4,3,6),C( 「A」, 「B」, 「C」, 「d」 ,「E」))
s對於所有子向量總是具有相同數量的對象。 NA值是不允許的。載體包含不同的類型。
我想實現的是:
rank v1 v2
1 3 "B"
2 3 "D"
3 4 "C"
4 5 "A"
5 6 "E"
基本上,排序基於第一矢量列表(升序),然後(如果在並列)使用詞彙學的看向第二矢量訂購。在C++世界中,我需要做的唯一事情就是爲我的對象定義運算符<,但是我非常新的R,我正在耗盡想法。
我發現的最佳策略是遍歷元素並計算每對情侶的等級值(雙倍)(例如,3「B」將導致最高等級和6「E」最低等級) ,將結果存儲在另一個向量中並對其進行排序。然而,這個解決方案並不是很好,因爲找到一個好的排名函數可能會非常棘手,並且不容易一概而論。
在我看來,這似乎是一個共同的問題,它必須是一個更好的方法。任何人都可以將我指向正確的方向嗎?
感謝您的幫助。
如果有許多列,並且它們與傳遞給'order'的順序相同,您也可以使用'do.call(order,s)'。 –
謝謝,這是完美的。 –