2013-07-12 5 views
8

Quindi ho una lista di float in R. Per un dato intero N, voglio trovare gli indici dei valori N di largets nella mia lista. Quindi, per esempio, se N è 2, voglio trovare gli indici dei due valori più grandi nella mia lista. Come faccio a fare questo?Come trovare i maggiori N elementi in una lista in R?

Scusa se ho dimenticato di menzionare un'altra cosa importante, non posso riordinare la mia lista. Questo è il motivo per cui ho bisogno di indicies ...

risposta

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

scusa non ho chiarito, per favore guarda la mia edi t – user2560984

+0

Nessuna delle risposte richiede il riordino dei dati. –

+0

sì, ma non restituiscono gli indici, hanno appena restituito il valore effettivo ... – user2560984

1

Probabilmente significa vettoriale e non una lista, ed ecco un esempio:

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

Re commento:

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

scusa non ho chiarito, per favore guarda la mia modifica – user2560984

4

Ecco un'alternativa:

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