R的sort、rank、order区别
举例说明:
> x<-c(97,93,85,74,32,100,99,67)
> sort(x)
[1] 32 67 74 85 93 97 99 100
> rank(x)
[1] 6 5 4 3 1 8 7 2
> order(x)
[1] 5 8 4 3 2 1 7 6
sort:按从小到大排序;
rank:该数对应于向量的第几名(按从小到大)。比如97在向量中是第6小的。
order:返回各个排名的数,位于向量的第几个(按从小到大)。相当于索引。比如这里最小的数位于向量的第5个位置。
Python的pandas中sort、order 、rank区别
主要是Series和Data Frame中会用到。
sort表示对行或列索引进行排序(按字典顺序):
obj.sort_index()
a 1
b 2
c 3
d 0
dtype: int32
order表示按值对Series进行排序:
obj.order()
2 -3
3 2
0 4
1 7
dtype: int64
rank 表示在这个数在原来的向量中排第几名,有相同的数,取平均(默认)。
obj = pd.Series([7,-5,7,4,2,0,4])
obj.rank()
0 6.5
1 1.0
2 6.5
3 4.5
4 3.0
5 2.0
6 4.5
dtype: float64