2012-05-01 26 views
5

那麼,決定了解R中的一些基本功能我已經偶然發現了sort.list()函數。我得到了非常直接的sort()函數,但沒有得到sort.list()的想法。我讀過它應該是一個排列函數,重新排列我的向量的內容(以某種方式)。R中的sort()和sort.list()有什麼區別?

具有向量;

x <- c(5.0, 3.0, 2.0, 2.2, 0.0, 5.0, 3.0, 2.0, 2.2) 

運行sort.list(x)輸出

[1] 5 3 8 4 9 2 7 1 6 

哪裏是從何而來?有人可以給我一個提示嗎?無論如何,這個排列有什麼用處?

謝謝。

回答

7

sort.list,因爲它說在?sort.list,是經由...相同order,改爲只接受多個參數,它接受僅一個原子向量作爲參數。

可以推測,它可能意圖作爲order的「更快」或「更簡單」版本。

這有什麼好處?試想一下:

x <- c(5.0, 3.0, 2.0, 2.2, 0.0, 5.0, 3.0, 2.0, 2.2) 
> x[sort.list(x)] 
[1] 0.0 2.0 2.0 2.2 2.2 3.0 3.0 5.0 5.0 
> x[order(x)] 
[1] 0.0 2.0 2.0 2.2 2.2 3.0 3.0 5.0 5.0 

就像order它返回一個置換是用於索引時,原來的向量進行排序。

但我也覺得這個名字很混亂。

+0

謝謝!我確實讀過?sort.list,但沒有把握它的想法。我現在明白了。猜猜我沒有趕上Sort.order()返回值的排序順序(顯然)的關係,以排序順序中的值的位置... – Alex

+0

@Alex我花了相當一段時間不得不查找'排名' ,「訂單」和「排序」,每次我使用它們之前,我可以保持它在我的腦海中,每個人都做了什麼。 – joran

相關問題