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)'。 –
谢谢,这是完美的。 –