2013-07-12 16 views
8

Tak więc mam listę floats w R. Dla danej liczby całkowitej N, chcę znaleźć oznaczenia wartości N largets na mojej liście. Na przykład, jeśli N wynosi 2, chcę znaleźć oznaczenia dwóch największych wartości na mojej liście. Jak mam to zrobic?Jak znaleźć największy N elementów na liście w R?

Przepraszam, że zapomniałem wymienić jeszcze jedną ważną rzecz, nie mogę zmienić kolejności mojej listy. Dlatego też potrzebne są indeksy ...

Odpowiedz

16
order(R, decreasing=TRUE)[1:N] 
+0

Przepraszam, że nie wyjaśniłem, proszę spojrzeć na moje edi t – user2560984

+0

Żadna z odpowiedzi nie wymaga zmiany kolejności danych. –

+0

tak, ale nie zwracają wartości, po prostu zwracają rzeczywistą wartość ... – user2560984

1

Prawdopodobnie oznacza to wektor a nie listę, a oto przykład:

v = c(1,7,4,3,9) 
v[order(-v)][1:3] 
#[1] 9 7 4 

Re komentarz:

order(-v)[1:3] 
#[1] 5 2 3 
+0

Przepraszam, że nie wyjaśniłem, proszę spojrzeć na moją edycję – user2560984

4

Oto alternatywa:

N <- 2 
v <- c(3, 9, 11, 18, 5) 
tail(order(v), N) 
# [1] 3 4 
Powiązane problemy