相关疑难解决方法(0)

理解order()函数

我试图了解该order()功能的工作原理.我的印象是它返回了索引的排列,当排序时,它会对原始向量进行排序.

例如,

> a <- c(45,50,10,96)
> order(a)
[1] 3 1 2 4
Run Code Online (Sandbox Code Playgroud)

我本来希望这会返回c(2, 3, 1, 4),因为排序的列表将是10 45 50 96.

有人能帮我理解这个函数的返回值吗?

sorting r r-faq

81
推荐指数
4
解决办法
13万
查看次数

在Python中计算列表的秩向量的有效方法

我正在寻找一种有效的方法来计算Python中列表的秩向量,类似于R的rank函数.在元素之间没有联系的简单列表中,列表的等级向量的元素il应该是x,当且仅当l[i]是排序列表中的第x个元素时.到目前为止,这很简单,以下代码片段可以解决这个问题:

def rank_simple(vector):
    return sorted(range(len(vector)), key=vector.__getitem__)
Run Code Online (Sandbox Code Playgroud)

然而,如果原始列表具有联系(即具有相同值的多个元素),则事情变得复杂.在这种情况下,具有相同值的所有元素应该具有相同的等级,这是使用上述朴素方法获得的等级的平均值.所以,例如,如果我有[1, 2, 3, 3, 3, 4, 5],天真的排名给了我[0, 1, 2, 3, 4, 5, 6],但我想拥有的是[0, 1, 3, 3, 3, 5, 6].在Python中哪一个是最有效的方法?


脚注:我不知道NumPy是否已经有了实现这一目标的方法; 如果确实如此,请告诉我,但无论如何我都会对纯Python解决方案感兴趣,因为我正在开发一个在没有NumPy的情况下也可以工作的工具.

python sorting list ranking

27
推荐指数
3
解决办法
4万
查看次数

R order 函数不排序东西?

我刚刚开始使用 R。最初的练习是首先打印lynx数据集:

> print(lynx)
Time Series:
Start = 1821 
End = 1934 
Frequency = 1 
  [1]  269  321  585  871 1475 2821 3928 5943 4950 2577  523   98  184  279  409 2285
 [17] 2685 3409 1824  409  151   45   68  213  546 1033 2129 2536  957  361  377  225
 [33]  360  731 1638 2725 2871 2119  684  299  236  245  552 1623 3311 6721 4254  687
 [49]  255  473  358  784 1594 1676 2251 1426  756  299  201 …
Run Code Online (Sandbox Code Playgroud)

r

1
推荐指数
1
解决办法
85
查看次数

R中sort(),rank()和order()之间的区别

R中的sort(),rank()和order()之间有什么区别?你能举例说明吗?

sorting r ranking difference

0
推荐指数
1
解决办法
2474
查看次数

标签 统计

r ×3

sorting ×3

ranking ×2

difference ×1

list ×1

python ×1

r-faq ×1