Vă prezentăm pachetul {messy} | R-bloggeri

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe R pe Nicola Rennieși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)


Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.

Când predau exemple folosind R, instructorii folosesc adesea frumos seturi de date, dar acestea nu sunt foarte realiste și nu sunt ceea ce elevii vor întâlni mai târziu în lumea reală. Seturile de date reale au greșeli de scriere, valori lipsă codificate în moduri ciudate și spații ciudate – pentru a numi doar câteva probleme. În același timp, este destul de rar să predați un modul doar despre disputarea datelor. Deoarece seturile de date cu adevărat reale nu sunt întotdeauna ideale pentru predare, deoarece s-ar putea să nu se potrivească cu ipotezele modelului pe care încercați să-l predați sau este doar prea murdar. Acolo intervine pachetul {messy}!

Ce face {messy}?

Pachetul {messy} R preia un set de date curat și adaugă aleatoriu aceste caracteristici ale real seturi de date în – oferind studenților posibilitatea de a-și exersa abilitățile de curățare a datelor și de dispută fără ca educatorii să fie nevoiți să-și schimbe toate exemplele.

Se instalează {messy}

De la începutul lui decembrie 2024, {messy} este disponibil oficial pe CRAN. Puteți instala {messy} folosind install.packages("messy").

1
pak::pkg_install("nrennie/messy")

sigla pachetului dezordonat

Câteva exemple

Înainte de a prezenta câteva exemple, vreau să le mulțumesc oamenilor care au contribuit deja la {messy}:

Folosind messy() funcţie

Să începem cu primele 10 rânduri ale ToothGrowth date ca exemplu de set de date mic, curat:

care arata ca:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
 len supp dose
1 4.2 VC 0.5
2 11.5 VC 0.5
3 7.3 VC 0.5
4 5.8 VC 0.5
5 6.4 VC 0.5
6 10.0 VC 0.5
7 11.2 VC 0.5
8 11.2 VC 0.5
9 5.2 VC 0.5
10 7.0 VC 0.5

Cel mai simplu mod de a folosi pachetul {messy} este prin intermediul messy() funcţie. Pur și simplu introduceți cadrul de date pe care doriți să îl faceți mai dezordonat:

1
2
set.seed(1234)
messy(ToothGrowth(1:10,))
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
 len supp dose
1 4.2 VC 0.5
2 11.5  
3 7.3 VC 0.5
4 5.8 (VC 0.5
5 6.4 VC 
6 10 VC 0.5
7 11.2  0.5
8 11.2 VC 0.5
9 5.2 VC 0.5
10 7 VC 0.5

Înlănțuirea mai multor funcții

De asemenea, puteți varia cantitatea de messinessși alegeți ce funcții sunt aplicate la ce coloane, prin înlănțuirea mai multor funcții:

1
2
3
4
5
6
7
set.seed(1234)
ToothGrowth(1:10,) |>
 make_missing(cols = "supp", missing = " ") |>
 make_missing(cols = c("len", "dose"), missing = c(NA, 999)) |>
 add_whitespace(cols = "supp", messiness = 0.5) |>
 add_special_chars(cols = "supp") |>
 messy_colnames()
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
 !l_e)n S^UPP d^o)se
1 4.2 VC 0.5
2 11.5 VC NA
3 7.3 VC 0.5
4 5.8 *VC 0.5
5 6.4 VC 0.5
6 10.0 VC 0.5
7 11.2 0.5
8 11.2 V#C NA
9 5.2 !VC 0.5
10 7.0 VC* 0.5

Sfat: dacă adăugați messy_colnames() la un lanț (și specificați doar unele coloane în alte funcții), asigurați-vă messy_colnames() vine la final. În caz contrar, este posibil ca numele coloanelor pe care încercați să le selectați să nu mai existe!

Consultați documentația pachetului pentru mai multe exemple și descrieri ale tuturor funcțiilor disponibile.

Alte gânduri despre {messy}

Deși acesta este un pachet R, este util și pentru predarea programarii în alte limbi. Tu creezi un murdar set de date și apoi salvați-l ca fișier CSV (sau Excel) și apoi utilizați-l pentru orice practică de dispută de date, indiferent de limbă. Are și utilizări dincolo de predare. De exemplu, testarea funcțiilor sau a pachetelor R pentru a vă asigura că funcțiile funcționează conform așteptărilor sau dați erori utile și adecvate atunci când nu funcționează.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.