Cum pentru a Sorta un Cadru de Date de pe mai Multe Coloane în R

posted in: Articles | 0

Pentru a începe a înțelege cum de a sorta în mod corespunzător de cadre de date în R, noi, desigur, trebuie mai întâi să genereze un cadru de date pentru a manipula.notă: spațierea nu este necesară, dar îmbunătățește lizibilitatea.,

de Executare nostru run.R script ieșiri lista de vectori în nostru cadru de date cum era de așteptat, în ordinea în care au fost introduse:

$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1

Funcția

Deși poate că nu este cea mai ușoară metodă de sortare, de tip în ceea ce privește sintaxa, cel care este cel mai ușor disponibile pentru toate instalațiile de R, din cauza de a fi o parte din base module, este order function.,

funcția order acceptă o serie de argumente, dar la cel mai simplu nivel primul argument trebuie să fie o secvență de valori sau vectori logici.,

De exemplu, putem folosi order() pur și simplu pentru a sorta un vector de cinci dispuse aleatoriu numere cu acest script:

# Create unordered vectorvector = c(2, 5, 1, 3, 4)# Print vectorvector# Sort in ascending ordervector

Executarea script-ul, vom vedea rezultatul inițial al neordonate vector, urmată de acum listă ordonată după aceea:

$ Rscript run.R 2 5 1 3 4 1 2 3 4 5

Sortarea un Cadru de Date de Vectorul Nume

Cu order() funcția în instrumentul nostru de centura, vom începe sortarea nostru cadru de date prin trecerea în vectorul nume în cadru de date.,

De exemplu, cu ajutorul nostru generat anterior dataframe obiect, putem fel de vector z prin adăugarea următorul cod pentru a script-ul nostru:

# Sort by vector name dataframe

Ce avem de-a face efectiv este chemarea noastră originală dataframe obiect, și trecerea în noul index pentru că ne-ar plăcea să aibă., Acest indice scopul este generat folosind with() function, care creează efectiv un mediu nou folosind trecut în date, în primul argument, împreună cu o expresie de evaluare a datelor în cel de-al doilea argument.

Astfel, suntem reevaluarea dataframe date folosind order() funcția, și vrem să comenzii, pe baza z vector în acel cadru de date., Aceasta returnează o nouă ordine de index pentru valorile cadrului de date, care este apoi evaluată în final în cadrul dataframe, afișând noul nostru rezultat ordonat.

$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1 x y z4 strawberry c 13 banana b 22 orange d 31 apple a 4

prin Urmare, ne vedem original neordonate de ieșire, urmată de o a doua ieșire cu datele sortate după coloana z.

Sortare după Coloană Index

Similar cu metoda de mai sus, este de asemenea posibil pentru a sorta pe baza numerice index de o coloană în cadru de date, mai degrabă decât numele specific.,

în Loc de a folosi with() funcția, putem trece pur și simplu order() funcția de a noastră dataframe. Ne indică faptul că ne dorim la fel de coloana de indice 1 cu ajutorul dataframe sintaxa, care provoaca R pentru a reveni la nivelurile de (nume) din index 1 coloana., Cu alte cuvinte, la fel ca atunci când am trecut în z vector numele de mai sus, order este sortarea bazată pe vector de valori care sunt în coloana index 1:

dataframe ),]

Cum era de așteptat, avem ieșire normală urmată de sortate ieșire în prima coloană:

$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1 x y z1 apple a 43 banana b 22 orange d 34 strawberry c 1

Sortarea după mai Multe Coloane

În unele cazuri, acesta poate fi de dorit pentru a sorta după mai multe coloane. Din fericire, acest lucru este foarte simplu cu metodele descrise anterior.,

Pentru a sorta mai multe coloane folosind vector de nume, pur și simplu adăugați argumente suplimentare pentru order() apel de funcție ca și mai înainte:

# Sort by vector name then dataframe

în mod Similar, pentru a sorta după mai multe coloane bazat pe index de coloană, adaugă argumente suplimentare pentru order() cu diferite indici:

# Sort by column index then dataframe, dataframe ),]

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *