Ich habe einen Vektor und ich bin in der Lage, den höchsten und niedrigsten Wert zurückgeben, aber wie 5 oberste Werte zurückgeben? Gibt es dafür eine einfache Ein-Zeilen-Lösung?Wie gibt man die 5 obersten Werte aus dem Vektor in R zurück?
Antwort
> a <- c(1:100)
> tail(sort(a),5)
[1] 96 97 98 99 100
Ja, head(X, 5)
wo X
Ihr sortierter Vektor ist.
x[order(x)[1:5]]
tail(sort.int(x, partial=length(x) - 4), 5)
Mit sort.int mit teilweise hat den Vorteil, dass sie (potentiell) schneller von (potentiell) keine vollständige Art zu tun. Aber in Wirklichkeit erscheint meine Implementierung etwas langsamer. Vielleicht liegt das daran, dass Shell-Sortierung mit Parameter partial! = NULL verwendet wird, anstatt schnell zu sortieren?
> 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
Wenn Sie stattdessen x <-runif (1e6) verwenden, sehen Sie den Vorteil. Beachten Sie, dass diese 5 Werte, die Sie zurück erhalten, in der Tat die höchsten 5 sind, aber nicht unbedingt in einer sortierten Reihenfolge. – Tommy
- 1. Wie gibt man nur die Werte zurück, die existieren?
- 2. Wie gibt man die obersten 100 Zeilen nach einem Spaltenwert zurück und randomisiert dann die obersten 100 Zeilen?
- 3. Wie fügt man Werte aus einem Vektor diagonal in eine Matrix in R ein?
- 4. Wie konvertiert man Vektor aus 1-Zeilen-Tabelle in R
- 5. Wie gibt man Werte von gWidgets und Handlern zurück?
- 6. Wie wählt man alle 5 anderen Beobachtungen in R aus?
- 7. Wie gibt man mehrere Werte in einer Funktion (Python) zurück?
- 8. MySQL gibt verschiedene Werte basierend auf dem GEO-Standort zurück?
- 9. EF4 gibt falsche Werte zurück, wenn aus der Zusammenfassungsansicht
- 10. Wie gibt man Werte eines benutzerdefinierten Typs mit NSLog aus?
- 11. Wie gibt man Werte von verschachtelten Versprechen zurück?
- 12. Wie bekomme ich die obersten 5 Elemente mit dem höchsten Vorkommen (Modus) in einem Javascript-Array
- 13. Anfügen benannter Vektor in R
- 14. Schreibe alle Nullen aus Vektor in R
- 15. Wie gibt die Funktion get_or_create in Django zwei Werte zurück?
- 16. Wie gibt man einen Wert aus dem Thread in Java zurück?
- 17. , wie man einen Vektor
- 18. Wie gibt man eindeutige Werte und ihre Anzahl zurück?
- 19. wie man einen Vektor nach xml in r
- 20. String.GetHashCode() gibt verschiedene Werte zurück
- 21. Wählen Sie die obersten N Zeilen NACH dem Sortieren aus der Datenansicht in C#
- 22. Warum Funktion für logistische Regression in r voraussagen gibt nicht binären Vektor zurück?
- 23. gibt mehrere Werte von sapply/lapply zurück
- 24. Wie berechnet man die Häufigkeitsverteilung in R?
- 25. Pulling Werte aus einem Vektor in MATLAB
- 26. Wählen Sie die obersten 5 Elemente aus jeder Gruppe mit PowerShell aus
- 27. Wie gibt man Textpositionen in PDFBox zurück?
- 28. Datum Vektor in R
- 29. CookieManager.getCookie() gibt verschiedene Werte zurück
- 30. Replizieren Vektor in R
Oder 'Kopf (sortiert (a, fallend = TRUE), 5)' – Marek
Schwanz ist etwas schneller als Kopf und fallend = TRUE > x <- rnorm (50000000) > system.time (tail (sort (x), 5)) Benutzersystem verstrichene 22.64 0.25 22.95 > System.Time (Kopf (sort (x, = TRUE) abnimmt, 5)) Benutzersystem verstrichene 23,26 0,20 23,51 – Thierry
@Thierry Sie sollten führe das mehr als einmal durch und nimm dir durchschnittliche Zeit. Weil ich denke, dass es statistisch gesehen keinen Unterschied gibt, basierend auf meinen Simulationen. – Marek