Bir vektörüm var ve en yüksek ve en düşük değerlere geri dönebiliyorum, ancak en üstteki 5 değer nasıl döndürülebilir? Bunun için basit bir tek çözüm var mı?R'deki vektörden en üstteki 5 değer nasıl iade edilir?
20
A
cevap
32
> a <- c(1:100)
> tail(sort(a),5)
[1] 96 97 98 99 100
2
Evet, head(X, 5)
burada X
düzenlenmiş vektörünüzdür. Kısmi ile
12
x[order(x)[1:5]]
3
tail(sort.int(x, partial=length(x) - 4), 5)
kullanarak sort.int (potansiyel olarak) daha hızlı (potansiyel olarak) tam tür yapmayarak olma avantajına sahiptir. Ama gerçekte, uygulamam biraz daha yavaş görünüyor. Belki de bunun nedeni, kısmi! = NULL parametresi ile, hızlı sıralama yerine kabuk sıralaması kullanılır.
> 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
Bunun yerine x <-runif (1e6) kullanırsanız, fayda göreceksiniz. Geri aldığınız 5 değerin gerçekten de en yüksek 5 olacağını, ancak zorunlu olarak sıralı bir sıralamada olmayacağını unutmayın. – Tommy
İlgili konular
- 1. Java'da birden fazla değer nasıl iade edilir?
- 2. Scala'da nasıl iade edilir
- 3. Yelkenler JS: Bir hizmetten bir değer nasıl iade edilir
- 4. Bu örnekte java'da birçok değer nasıl iade edilir?
- 5. AJAX hatalarını Laravel denetleyicisinden nasıl iade edilir?
- 6. Yalnızca Scala'da değer bazında en düşük değer nasıl elde edilir
- 7. Android SQLiteDatabase en üstteki öğeden
- 8. Titremesiz en üstteki formun değiştirilmesi
- 9. Yalnızca en üstteki RewriteRule çalışıyor
- 10. Cython'da yeni C++ nesneleri nasıl iade edilir?
- 11. Rc NULL Rcpp kodu nasıl iade edilir?
- 12. İstemcilerle birlikte bir dizi nasıl iade edilir?
- 13. Paypal'da işlem nasıl iade edilir? PHP Kodu
- 14. Layout'taki çocuğun endeksi nasıl iade edilir?
- 15. WebApi eyleminden html sayfası nasıl iade edilir?
- 16. swap div'in en üstteki div'sinin pozisyonu
- 17. ASP.NET'te bir datatable/dataview'den en üstteki n satırları nasıl seçilir
- 18. MySQL'de en yaygın değer sırasını nasıl görüntüleyebilirim?
- 19. Liste arrayadapter veri güncelleştirildikten sonra en üstteki gönderiye geri dön
- 20. Elixir'de belirli bir dizinden bir dosya koleksiyonu nasıl iade edilir?
- 21. Web API'sı Yönteminden Xml Verileri nasıl iade edilir?
- 22. C++ 'da referans olarak bir sınıf nesnesi nasıl iade edilir?
- 23. Belgedeki iki dizi öğesine dayanan belgeler nasıl iade edilir?
- 24. CLR UDF'de bir nvarchar (maks) nasıl iade edilir?
- 25. php isteği ile html'de http içeriği nasıl iade edilir?
- 26. Boş değer cmd dosyasında nasıl kontrol edilir?
- 27. Jquery - Li'ye tıkladığınızda nasıl değer elde edilir?
- 28. Onaltılı değer 1F nasıl temsil edilir?
- 29. android için en üstteki ebeveyne göre görünüm konumunu al
- 30. Grup başına en üstteki n gibi karmaşık sorgular için hazırda bekletme yönteminin en iyi yolu
ya 'kafası (çeşit: (a, = TRUE), 5 azaltılması) ' – Marek
kuyruk biraz daha hızlı baş ve azalan daha = TRUE > x <- rnorm (50000000) > system.time (kuyruk (çeşit (x), 5)) kullanıcı sistemi) kullanıcı sistem geçen (5) = TRUE azaltılması, baş (bir çeşit (x) 22.64 0.25 22.95 > system.time geçen 23.26 0.20 23.51 – Thierry
@Thierry Bu durumda büyük Bunu daha sonra bir kez çalıştırın ve ortalama zaman ayırın. Çünkü simülasyonlarıma dayanan bir fark olmadığını düşünüyorum (istatistiksel olarak). – Marek