2012-05-01 16 views
5

Vâng, khi quyết định tìm hiểu một số chức năng cơ bản trong R, tôi đã tình cờ gặp hàm sort.list(). Tôi nhận được hàm sort() khá thẳng về phía trước, nhưng không hiểu ý tưởng của sort.list(). Tôi đã đọc rằng nó nên là một chức năng hoán vị sắp xếp lại nội dung của vector của tôi (theo một cách nào đó).Sự khác nhau giữa sort() và sort.list() trong R là gì?

Có vectơ;

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

Chạy sort.list(x) đầu ra

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

đâu đó đến từ đâu? Ai đó có thể cho tôi một gợi ý được không? Và việc sử dụng hoán vị này là gì?

Cảm ơn.

Trả lời

7

sort.list, vì nó nói ở ?sort.list, cũng giống như order, chỉ thay vì chấp nhận nhiều đối số qua ..., nó chỉ chấp nhận một vector nguyên tử như một cuộc tranh cãi.

Có lẽ, sau đó, nó có thể được dự định là phiên bản "nhanh hơn" hoặc "đơn giản" hơn order.

Điều gì tốt? Hãy xem xét điều này:

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 

Nó trả về một hoán vị khi được sử dụng để lập chỉ mục vector gốc sắp xếp nó.

Nhưng tôi cũng nghĩ rằng tên này rất khó hiểu.

+0

Cảm ơn! Tôi đã đọc? Sort.list, nhưng không hiểu ý tưởng của nó. Bây giờ tôi hiểu rồi. Đoán tôi đã không nắm bắt được (rõ ràng) mối quan hệ của giá trị trả về của sort.list() cho các vị trí của giá trị theo thứ tự sắp xếp ... – Alex

+0

@Alex Nó đã cho tôi khá một thời gian của việc phải tìm kiếm 'rank' , 'thứ tự' và' sắp xếp' mỗi lần tôi sử dụng chúng trước khi tôi có thể giữ nó thẳng trong đầu của tôi những gì mỗi người đã làm. – joran

Các vấn đề liên quan