Uvod v razvrščanje v R

Razvrstitev je eden ključnih vidikov analize podatkov. Gre za tehniko, pri kateri so podatki razporejeni ali ločeni v določenem zaporedju. Podatki so razvrščeni, da se iz podatkovne zbirke pridobijo zahtevane informacije. Na primer, če razporedite podatke v naraščajočem vrstnem redu na podlagi ključa datuma, so tukaj določena merila za razvrščanje. To operacijo je mogoče enostavno izvesti z jezikom R. V jeziku R obstaja več funkcij razvrščanja, kot so razvrščanje mehurčkov in izbira. V tem članku bomo videli pomen različnih funkcij razvrščanja in vsako od njih pojasnili s primeri.

Razvrščanje izvedeno v R

Obstaja več načinov, s katerimi lahko podatke razvrstimo po R. Na analitičnem podatku je razmisliti o najustreznejši metodi, ki temelji na strukturi podatkov. Jezik R ima več funkcij in načinov razvrščanja podatkov, kot so vrsta sortiranja (), vrstnega reda () in dplyrI ().

Preden razvrstite podatke, morate biti pozorni.

  1. Vrstni red, po katerem je treba podatke razvrščati po naraščajočih ali padajočih.
  2. Kriteriji za razvrščanje več stolpcev.
  3. Med razvrščanjem se upoštevajo manjkajoče in podvojene vrednosti. Analitik se odloči, kaj mora storiti z manjkajočimi in podvojenimi vrednostmi. Pred odstranitvijo ali nadomestitvijo ničelnih vrednosti je treba upoštevati celoten vpliv na podatke.

Razvrsti () funkcijo v R

Funkcija razvrščanja v R se uporablja za razvrščanje vektorja. Privzeto je vrednost organizirana v naraščajočem vrstnem redu. Vzemimo primer stolpca znamke vseh učencev v učilnici.

Sintaksa za razvrščanje vektorja je

“sort (x, decreasing = FALSE)”

Tu se x nanaša na vektor in zmanjšanje je treba nadomestiti na TRUE, ko mora razvrščanje potekati po padajočem vrstnem redu. Funkcija razvrščanja se uporablja pri urejanju številskega ali znakovnega vektorja v želenem vrstnem redu. Glavna omejitev funkcije razvrščanja je, da je ni mogoče uporabiti za razvrščanje podatkovnega okvira. Za premagovanje te omejitve se uporablja funkcija Order ().

Osnovni primer razvrščanja z uporabo sort () funkcije

set.seed(1)
x <- sample(1:100, 10)
x

Izhod
(1) 68 39 1 34 87 43 14 82 59 51

razvrsti (x)

Izhod

(1) 1 14 34 39 43 51 59 68 82 87

Razvrščanje podatkovnih okvirov je mogoče doseči s funkcijo order (). Spremenljivke lahko enostavno razvrstimo po naraščajočem ali padajočem vrstnem redu, vendar bo funkcija naročila spremenljivko razvrščala po privzeto.

> df <- data.frame("Serial_number" = 1:5, "Age" = c(20, 21, 17, 18, 19), "Name" = c("Johnny", "Dorian", "Linda", "Cathy", "Rick"))
>
> # Sort by age ascending order
> newdataAsc newdataAsc

# sorting is descending order
> newdataDsc> newdataDsc newdataAsc

Prosimo, upoštevajte, da se negativni predznak uporablja pred stolpcem Starost (-df $ Age), da se starost razvrsti po padajočem vrstnem redu. V tem položaju se lahko uporabi tudi padajoči argument. Funkcija Urejanje se uporablja za sklicevanje na indeks stolpcev in ne na ime stolpca. Na primer namesto starosti sklic na indeks podatkovnega okvira, ki bi bil „1“. Upoštevajte, da vrednosti indeksov začnejo z "0".

V nekaj primerih bomo morda morali podatke razvrstiti po več merilih, kar lahko dosežemo v R s pomočjo uporabe spremenljivih imen ali indeksnih števil. V spodnjem primeru sem uporabil nabor podatkov mtcars, ki je na voljo v R studiu.

df <- mtcars
> df
> # sort the dataframe by key disp
> df(with(df, order(mpg, disp)), )

> # Sort by column index values
> df(order( df(, 1), df(, 3) ), )

V R je alternativni način razvrščanja podatkov z uporabo dplyr paketa. Ta paket je zelo enostaven za uporabo in zanesljiv z natančnimi navodili.

> install.packages("dplyr")
> library(dplyr)
> df <- mtcars
>
> # sort the dataframe by key disp
> arrange(mydata, disp)

Vrste razvrščanja v R

R je opremljen z več algoritmi za izvajanje razvrščanja podatkov. Spodaj so različne vrste funkcije razvrščanja. Za ponazoritev različnih vrst razvrščanja se uporablja vzorec 10 naključnih števil iz matrike.

1. Razporeditev mehurčkov

V tem algoritmu se dve vrednosti primerjata drug ob drugem in elementi zamenjajo svoj položaj, ko so kriteriji izpolnjeni. Lahko je naraščajoče ali padajoče. V obliki mehurčkov so razvrščeni pari za elemente, ki so na voljo v spremenljivki, in elementi se med seboj primerjajo, kadar je en element večji od drugega, so zamenjali. Postopek se ponovi do zadnjega elementa.

> bubble_sort <- function (x, ascending = TRUE) (
+ n <- length(x)
+ if (ascending) (
+ for(i in 1:(n-1))(
+ for(j in 1:(ni)) (
+ if(x(j+1) < x(j)) (
+ tmp <- x (j) + x(j) <- x( j+ 1) + x(j+1) <- tmp
+ )
+ )
+ )
+ )
+ else (
+ for(i in 1:(n-1))(
+ for(j in 1:(ni)) (
+ if(x(j+1) > x(j)) (
+ tmp <- x (j) + x(j) <- x( j+ 1) + x(j+1) <- tmp
+ )
+ )
+ )
+ )
+ x
+ )
>
> x <-sample(1:100, 10)
> example <- bubble_sort(x)
> example

Izhod

2. Razvrstitev vstavka

V algoritmu razvrščanja vstavitve primerjamo razvrščene in nesortirane elemente, nesortirani element pa po vsaki ponovitvi postavimo na primerno mesto.

V tem algoritmu se domneva, da je prvi element razvrščen, drugi element pa je ločeno shranjen kot ključni element. Razvrščeni element nato primerjamo s ključem. Če je razvrščeni element večji od ključnega elementa, se mesta zamenjajo, ključni element pa je prvi element.

> insertion_sort <- function(A)(
+ for (j in 2:length(A)) (
+ key = A(j) + i = j - 1
+ while (i > 0 && A(i) > key) (
+ A((i + 1)) = A(i) + i = i - 1
+ )
+ A((i + 1)) = key
+ )
+ A
+ )
>
>
> # testing the insertion function
> x <-sample(1:100, 10)
> example <- insertion_sort(x)
> example

Izhod

3. Razvrstitev izbire

Izbirna funkcija sortiranja je široko uporabljen algoritem razvrščanja, ki se uporablja v jeziku R. Pri tej vrsti razvrščanja se na začetek seznama potisne najmanjši element z neortiziranega seznama. V algoritmu za razvrščanje selekcij je izbran najmanjši element iz matrike neortiziranega seznama in ga postavljen na začetek nesortiranega seznama ob vsaki ponovitvi. Na primer, v vrsti števil, razporejenih v naključnem zaporedju, je začetni element ali število izbrano kot najmanj. V naslednjem koraku se izbrano najmanjše število primerja z naslednjim elementom ali številko. Če je primerjani element manjši od našega izbranega minimuma, drugi element postane minimum. Ta postopek je ponovljen do zadnjega elementa.

> selection_sort <- function (x, ascending = TRUE) (
+ max <- length(x)
+ if (ascending) (
+ for (j in 1:(max-1))(
+ m <- x(j) + p <- j
+ for(k in (j+1):max) (
+ if(x(k) < m) (
+ m <- x(k) + p <- k
+ ) ## end if
+ ) ## end for k
+ x(p) <- x(j) + x(j) <- m
+ ) ## end for j
+ ) ## end ascending if
+ else (
+ for (j in 1:(max-1))(
+ m <- x(j) + p <- j
+ for(k in (j+1):max) (
+ if(x(k) > m) (
+ m <- x(k) + p <- k
+ ) ## end if
+ ) ## end for k
+ x(p) <- x(j) + x(j) <- m
+ ) ## end for j
+ ) ## end ascending else
+ x
+ )
>
>
> # testing the selectionsort function
> x <-sample(1:100, 10)
>
> example <- selection_sort(x)
> example

Izhod

4. Hitro razvrščanje

Quicksort algoritem deluje kot ločevanje in vladanje. Naključni element je izbran kot vrtišče v matriki, nato pa so vsi drugi elementi razen vrtilja razdeljeni na dve particiji. V naslednjem koraku so vsi elementi, ki so manjši in večji od vrtička, razdeljeni na dve različni particiji. Na koncu so elementi razvrščeni s pomočjo rekurzije.

> # Quick sort algorithm:
> quickSort <- function(arr) (
+ # Pick a number at random.
+ mid <- sample(arr, 1)
+
+ # Place-holders for left and right values.
+ left <- c()
+ right <- c()
+
+ # Move all the smaller values to the left, bigger values to the right.
+ lapply(arr(arr != mid), function(d) (
+ if (d < mid) (
+ left <<- c(left, d)
+ )
+ else (
+ right <<- c(right, d)
+ )
+ ))
+
+ if (length(left) > 1) (
+ left <- quickSort(left)
+ )
+
+ if (length(right) > 1) (
+ right <- quickSort(right)
+ )
+
+ # Finally, return the sorted values.
+ c(left, mid, right)
+ )
>
> x <-sample(1:100, 10)
>
> RES <- quickSort(x)
> RES

Izhod

5. Združi razvrstitev

Razvrstitev združevanja je zelo podobna quicksort, vendar je matrika razdeljena na dve enaki polovici. Algoritem razvrščanja združevanja je bil razdeljen na dva dela funkcijo spajanja in razvrščanja. Pri razvrstitvi združevanja je seznam razčlenjen na več pod-seznamov, dokler vsak pod seznam vsebuje posamezen element. Združevanje rezultatov pod-seznamov je razvrščeno.

> mmerge<-function(a, b) (
+ r<-numeric(length(a)+length(b))
+ ai<-1; bi<-1; j<-1;
+ for(j in 1:length(r)) (
+ if((ai<=length(a) && a(ai)length(b)) (
+ r(j) <- a(ai) + ai <- ai+1
+ ) else (
+ r(j) <- b(bi) + bi <- bi+1
+ )
+ )
+ r
+ )
> mmergesort<-function(A) (
+ if(length(A)>1) (
+ q <- ceiling(length(A)/2)
+ a <- mmergesort(A(1:q))
+ b <- mmergesort(A((q+1):length(A)))
+ mmerge(a, b)
+ ) else (
+ A
+ )
+ )
>
> x <-sample(1:100, 10)
>
> RES <- mmergesort(x)
> RES

Izhod

6. HeapSort

Tehnika razvrščanja po heap je zelo podobna tisti izbirni vrsti, pri kateri je v vsaki iteraciji izbran najmanjši element z nerazvrščenega seznama in postavljen na začetek seznama. Vendar pa tehnika nadmetavanja uporablja koncepte dreves.

> heap.structure<-function(vect)
+ (
+ le=length(vect)
+ heap=vec
+ for (k in le:1)
+ (
+ heap=modify_heap(heap, k)
+ )
+ return(heap)
+ )
>
>
> modify_heap<-function(heap, rooti)
+ (
+ le=length(heap)
+ flag=0
+
+ while (rooti*2 <= le && flag==1)
+ (
+ left.i=rooti*2
+ right.i=rooti*2+2
+ flag=1
+ child=c(heap(left.i), heap(right.i))
+ child=child(!is.na(child)) + min.ind=which.min(child)
+ if (heap(rooti)>child(min.ind))
+ (
+ flag=1
+ heap.ind=c(left.i, right.i)(min.ind) +
+ tmp1=heap(heap.ind) + heap(heap.ind)=heap(rooti) + heap(rooti)=tmp1
+
+ rooti=heap.ind
+ )
+ )
+ return(heap)
+ )
>
> heap_sort<-function(heap)
+ (
+ sorted.heap=NULL
+ le=length(heap)
+ while(le>0)
+ (
+ sorted.heap=c(sorted.heap, heap(1))
+ le=length(heap)
+ heap(1)=heap(le) + heap=heap(1:(le-1)) + heap=modify_heap(heap, rooti=1)
+ le=le-1
+ )
+ return(sorted.heap)
+ )
>
>
> x <- sample(1:100, 10)
> heap=heap.building(x)
> heap_sort=heap_sort(heap)
> heap_sort

Izhod

Zaključek

V tem članku smo videli različne načine razvrščanja podatkov s pomočjo R. Videli smo, kako se ukaz za urejanje in vrstni red uporablja za razvrščanje podatkovnega okvira, v članku so prikazane nadaljnje omejitve funkcije razvrščanja glede na funkcijo naročila. Podrobna razlaga različnih algoritmov razvrščanja, kot so razvrščanje mehurčkov, sortiranje izbire in združevanje, je bilo temeljito razpravljeno. Razvrstitev, ki je eden najpomembnejših korakov analize podatkov, ima različne funkcije za več potreb. Izvajalec podatkov bo v celoti izbral najprimernejšo metodo razvrščanja glede na razpoložljive podatke.

Priporočeni članki

To je vodnik za razvrščanje v R. Tukaj razpravljamo o tem, kaj je razvrščanje v R, lastnosti in vrste razvrščanja v R. Če želite izvedeti več, lahko preberete tudi druge predloge, ki jih predlagate -

  1. Jeziki znanosti o podatkih
  2. Baza podatkov v SQL
  3. Vrste podatkov na C
  4. Vrste podatkov PostgreSQL
  5. Uvod v razvrščanje v Tableau
  6. Razvrsti vstavljanje v JavaScript
  7. Celoten vodnik za razvrščanje v C # s primeri
  8. Funkcija razvrščanja v Pythonu s primeri

Kategorija: