Tôi có một véc tơ và tôi có thể trả lại giá trị cao nhất và thấp nhất, nhưng cách trả về 5 giá trị cao nhất? Có một giải pháp đơn giản cho việc này không?Làm thế nào để trả lại 5 giá trị cao nhất từ vectơ trong R?
20
A
Trả lời
32
> a <- c(1:100)
> tail(sort(a),5)
[1] 96 97 98 99 100
2
Có, head(X, 5)
trong đó X
là véc tơ được sắp xếp của bạn.
12
x[order(x)[1:5]]
3
tail(sort.int(x, partial=length(x) - 4), 5)
Sử dụng sort.int với một phần có lợi thế là (khả năng) nhanh hơn bằng cách (khả năng) không làm một loại đầy đủ. Nhưng trong thực tế, việc triển khai của tôi xuất hiện chậm hơn một chút. Có lẽ điều này là bởi vì với tham số một phần! = NULL, loại vỏ được sử dụng chứ không phải là sắp xếp nhanh chóng?
> x <- 1:1e6
> system.time(replicate(100, tail(sort.int(x, partial=length(x) - 4), 5)))
user system elapsed
4.782 0.846 5.668
> system.time(replicate(100, tail(sort(x), 5)))
user system elapsed
3.643 0.879 4.854
+0
Nếu bạn sử dụng x <-runif (1e6), bạn sẽ thấy lợi ích. Lưu ý rằng 5 giá trị bạn nhận được đó thực sự sẽ là 5 giá trị cao nhất, nhưng không nhất thiết phải theo thứ tự được sắp xếp. – Tommy
Các vấn đề liên quan
- 1. làm thế nào để xóa một khóa từ một từ điển có giá trị cao nhất?
- 2. So sánh vectơ ký tự trong R để tìm giá trị duy nhất và/hoặc thiếu
- 3. Giá trị trả lại từ chrome.tabs.executeScript
- 4. Nhãn hàng trả lại cho giá trị lớn nhất trong excel r
- 5. Làm thế nào để thêm hai vectơ KHÔNG lặp lại trong R?
- 6. Trả lại giá trị từ Chủ đề
- 7. Cách xóa các giá trị NA trong vectơ trong R
- 8. Làm thế nào để nhận được giá trị trả lại từ TRÌNH TRẺ EM?
- 9. Làm thế nào tôi có thể trả lại một giá trị ngẫu nhiên từ một mảng?
- 10. Làm thế nào để trả lại một giá trị boolean từ một regex
- 11. Làm thế nào để trả lại giá trị từ chức năng
- 12. Oracle SQL - Cách lấy 5 giá trị cao nhất của một cột
- 13. PHP Lấy giá trị cao nhất từ mảng
- 14. Làm thế nào để kết hợp hai vectơ có độ dài khác nhau trong R
- 15. Trả lại nhiều giá trị trong javascript?
- 16. Làm thế nào để trả lại giá trị enum bởi 2 thông số trong java
- 17. Làm cách nào để trả lại giá trị cột IDENTITY mới từ câu lệnh SQLServer SELECT?
- 18. Làm cách nào để nhận được nhiều giá trị cao nhất từ một bảng?
- 19. Làm cách nào để trả lại giá trị từ tập lệnh AutoHotkey?
- 20. Làm thế nào để `({...})` trả về một giá trị?
- 21. Làm thế nào để có được giá trị lớn nhất từ NSArray có chứa từ điển?
- 22. thế nào để trả lại nhiều giá trị từ một phương pháp
- 23. Làm cách nào để hợp nhất các bảng trong R?
- 24. Trả về đối tượng từ mảng có giá trị cao nhất
- 25. Nhiều giá trị trả lại trong python
- 26. Cách tốt nhất để trả lại giá trị từ tập lệnh python
- 27. Tìm giá trị nhỏ nhất trong số 5 số nguyên?
- 28. FMDatabaseQueue Cách trả lại giá trị
- 29. Làm thế nào để có được giá trị trả lại của xcodebuild?
- 30. Chỉ mục trả về của giá trị nhỏ nhất trong một vectơ?
Hoặc 'đầu (loại (a, giảm = TRUE), 5) ' – Marek
đuôi là nhanh hơn một chút so với người đứng đầu và giảm = TRUE > x <- rnorm (50.000.000) > system.time (đuôi (loại (x), 5)) hệ thống sử dụng trôi qua 22,64 0,25 22,95 > system.time (đầu (loại (x, giảm = TRUE), 5)) hệ thống sử dụng trôi qua 23,26 0,20 23,51 – Thierry
@Thierry Bạn nên chạy này nhiều hơn sau đó một lần và mất thời gian trung bình. Bởi vì tôi nghĩ rằng không có sự khác biệt (theo thống kê), dựa trên các mô phỏng của tôi. – Marek