MATLAB中与R函数rank()等价的函数是什么?

4

R 有一个名为 rank() 的函数。

https://www.rdocumentation.org/packages/base/versions/3.4.1/topics/rank

该函数的作用是计算并返回升序列表中每个元素的顺序。

(这不是函数order(),它返回每个元素在升序列表中应具有的索引)。

MATLAB 中是否存在此类函数?我怀疑在 MATLAB 中编写自己的此类函数会非常低效。

1个回答

4

是的,你可以使用 unique()

[~, ~, rank] = unique(A); % A is the array you want to rank

请注意,MATLAB的unique()函数在解决相等情况时与R的rank()函数不同。


或者,如果您想像rank()一样解决相等情况,那么可以使用tiedrank()函数,前提是您已经安装了统计工具箱:

rank = tiedrank(A);

tiedrank()的默认设置在解决并列时是否完全相同? - ShanZhengYang
是的,rank()tiedrank()默认都将并列的排名视为平均值。因此,对于数组 [10 20 30 40 20] 的排名将使用任一函数计算出来为 [1.0 2.5 4.0 5.0 2.5] - frslm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接