Come si seleziona la prima riga di un frame di dati R che soddisfa determinati criteri?Come si seleziona la prima riga in un frame di dati R che soddisfi determinati criteri?
Ecco contesto:
Ho un frame di dati con cinque colonne:
"pixel", "year","propvar", "component", "cumsum."
Ci sono 1.225 combinazioni di pixel
e year
, poiché i dati sono stati calcolati dalla serie temporale annuale di 49 pixel geografici per ciascuno dei 25 anni di studio. All'interno di ogni anno-pixel, ho calcolato propvar
, la proporzione della varianza totale spiegata da un dato componente della trasformata di Fourier veloce per le serie temporali di un dato anno-pixel. Ho quindi calcolato cumsum
, che è la somma cumulativa di propvar
per ogni componente di frequenza entro un anno-pixel. La colonna component
ti fornisce solo un indice per il componente della serie di Fourier (più 1) dal quale è stato calcolato propvar
.
Desidero determinare il numero di componenti necessari per spiegare oltre il 99% della varianza. Immagino che un modo per farlo sia trovare la prima riga all'interno di ogni pixel anno in cui cumsum
> 0,99 e creare un frame dati da esso con tre colonne, pixel
, year
e numbercomps
, dove numbercomps
è il numero di componenti richiesti all'interno un dato anno-pixel per spiegare oltre il 99% della varianza. Non so come farlo in R. Qualcuno ha una soluzione?
Holy crap. Ora so perché hai accumulato 2.157 punti in soli 43 giorni di abbonamento a StackOverflow. Grazie uomo! Ho questa risposta nella cartella StackOverflow del mio client di posta elettronica. Ti riconoscerò in qualsiasi pubblicazione risultante da questa assistenza. ADORO la funzione duplicata, BTW. È come ... esattamente quello di cui avevo bisogno. (A proposito, le pubblicazioni sarebbero, ovviamente, il risultato di molto più lavoro di questo particolare problema, LOL.) Buona notte. –
Fresco. Mandami una copia di qualsiasi pubblicazione del progetto (anche se ovviamente non è necessario alcun riconoscimento)! –
Lo farà! E ho controllato la tua risposta. Grazie ancora. –